# đŸ›ïž P0 AUDIT: Financial Data Modeling - Purchasing, Leasing, Insurance & Taxes **DĂĄtum:** 2026-06-20 **SzerzƑ:** Rendszer-Architect **StĂĄtusz:** AUDIT COMPLETE (no code changes) **HatĂĄskör:** `backend/app/models/vehicle/asset.py`, `backend/app/models/vehicle/vehicle.py` --- ## 1. AssetFinancials Audit ### 1.1 Jelenlegi ĂĄllapot A `AssetFinancials` modell a `vehicle.asset_financials` tĂĄblĂĄban egy 1:1 kapcsolatban ĂĄll az `Asset` modelllel (`uselist=False`). **MeglĂ©vƑ oszlopok:** | Oszlop | TĂ­pus | LeĂ­rĂĄs | |--------|-------|--------| | `id` | `Integer PK` | ElsƑdleges kulcs | | `asset_id` | `UUID FK → vehicle.assets.id` | **UNIQUE** - 1:1 kapcsolat | | `purchase_price_net` | `Numeric(18,2)` | NettĂł vĂ©telĂĄr | | `purchase_price_gross` | `Numeric(18,2)` | BruttĂł vĂ©telĂĄr | | `vat_rate` | `Numeric(5,2)` | ÁFA kulcs (alapĂ©rtelmezett: 27.00) | | `activation_date` | `DateTime` | AktivĂĄlĂĄs dĂĄtuma | | `verified_purchase_date` | `DateTime` | EllenƑrzött vĂĄsĂĄrlĂĄs dĂĄtuma | | `financing_type` | `String(50)` | FinanszĂ­rozĂĄs tĂ­pusa (pl. cash, loan, lease, unknown) | | `accounting_details` | `JSONB` | KönyvelĂ©si rĂ©szletek (catch-all) | ### 1.2 HiĂĄnyzĂł mezƑk (lĂ­zing/hitel finanszĂ­rozĂĄshoz) A következƑ mezƑk **hiĂĄnyoznak** a jelenlegi modellbƑl: | HiĂĄnyzĂł mezƑ | TĂ­pus | IndoklĂĄs | |-------------|-------|----------| | `down_payment` | `Numeric(18,2)` | ElƑleg - lĂ­zing Ă©s hitel esetĂ©n kritikus | | `monthly_installment` | `Numeric(18,2)` | Havi törlesztƑ rĂ©szlet | | `residual_value` | `Numeric(18,2)` | MaradvĂĄnyĂ©rtĂ©k (lĂ­zing vĂ©gĂ©n) | | `contract_number` | `String(100)` | SzerzƑdĂ©sszĂĄm (hitel/lĂ­zing szerzƑdĂ©s) | | `financing_provider` | `String(200)` | FinanszĂ­rozĂł neve (bank, lĂ­zingcĂ©g) | | `interest_rate` | `Numeric(5,2)` | KamatlĂĄb (%) | | `total_contract_value` | `Numeric(18,2)` | Teljes szerzƑdĂ©ses Ă©rtĂ©k | | `lease_start_date` | `DateTime` | LĂ­zing kezdƑ dĂĄtuma | | `lease_end_date` | `DateTime` | LĂ­zing vĂ©ge dĂĄtuma | | `payment_frequency` | `String(20)` | FizetĂ©si gyakorisĂĄg (monthly/quarterly/yearly) | | `payment_day` | `Integer` | FizetĂ©si nap a hĂłnapban (1-28) | ### 1.3 Javasolt bƑvĂ­tĂ©s A meglĂ©vƑ `accounting_details` JSONB mezƑ alkalmas lehet könyvelĂ©si metaadatok tĂĄrolĂĄsĂĄra, de **dedikĂĄlt oszlopok** szĂŒksĂ©gesek a lekĂ©rdezhetƑsĂ©g Ă©s adatintegritĂĄs biztosĂ­tĂĄsĂĄhoz. Javasolt Ășj mezƑk az AssetFinancials modellhez: - `down_payment` - ElƑleg - `monthly_installment` - Havi törlesztƑ - `residual_value` - MaradvĂĄnyĂ©rtĂ©k - `contract_number` - SzerzƑdĂ©sszĂĄm - `financing_provider` - FinanszĂ­rozĂł neve - `interest_rate` - KamatlĂĄb - `total_contract_value` - Teljes szerzƑdĂ©ses Ă©rtĂ©k - `lease_start_date` - LĂ­zing kezdete - `lease_end_date` - LĂ­zing vĂ©ge - `payment_frequency` - FizetĂ©si gyakorisĂĄg - `payment_day` - FizetĂ©si nap --- ## 2. Cost & Expense Modellek ÖsszehasonlĂ­tĂĄsa ### 2.1 `VehicleExpenses` - Legacy modell | TulajdonsĂĄg | ÉrtĂ©k | |-------------|-------| | **TĂĄbla** | `vehicle.vehicle_expenses` | | **KategĂłria tĂ­pusa** | `String(50)` - egyszerƱ string, nincs FK | | **ÁFA kezelĂ©s** | Nincs | | **JĂłvĂĄhagyĂĄsi workflow** | Nincs | | **SzĂĄmla/dokumentum** | Nincs | | **Kapcsolat AssetEvent-tel** | Nincs | | **HasznĂĄlat** | Legacy, egyszerƱ reporting | ### 2.2 `AssetCost` - ElsƑdleges költsĂ©gmodell | TulajdonsĂĄg | ÉrtĂ©k | |-------------|-------| | **TĂĄbla** | `vehicle.asset_costs` | | **KategĂłria** | `category_id` → `vehicle.cost_categories` (FK) | | **ÁFA kezelĂ©s** | `amount_net`, `amount_gross`, `vat_rate` (Gross-First) | | **JĂłvĂĄhagyĂĄsi workflow** | `DRAFT` → `PENDING_APPROVAL` → `APPROVED` | | **SzĂĄmla/dokumentum** | `invoice_number`, `document_id` | | **Smart Sync (AssetEvent)** | Bidirectional `linked_asset_event_id` | | **JSONB adatok** | Extra mezƑk: `mileage_at_cost`, `description` | | **Szervezeti kötĂ©s** | `organization_id` | ### 2.3 KövetkeztetĂ©s A `VehicleExpenses` egy **legacy, leegyszerƱsĂ­tett modell**, amelyet a jövƑben fokozatosan ki kell vezetni. A `AssetCost` a teljes Ă©rtĂ©kƱ, jĂłvĂĄhagyĂĄsi workflow-val Ă©s Smart Sync-kel rendelkezƑ költsĂ©gmodell. --- ## 3. AdatbĂĄzis StratĂ©gia - Javasolt RĂ©tegek ### 3.1 RĂ©tegdiagram ``` 1. rĂ©teg: BeszerzĂ©s & FinanszĂ­rozĂĄs (AssetFinancials) ├─ purchase_price_net / purchase_price_gross / vat_rate ├─ down_payment / monthly_installment / residual_value ├─ contract_number / financing_provider / interest_rate ├─ lease_start_date / lease_end_date └─ payment_frequency / payment_day 2. rĂ©teg: MƱködĂ©si költsĂ©gek (AssetCost) ├─ category_id → CostCategory ├─ amount_net / amount_gross / vat_rate ├─ invoice_number / status └─ linked_asset_event_id / data JSONB 3. rĂ©teg: BiztosĂ­tĂĄsi kötvĂ©nyek (VehicleInsurancePolicy) - ÚJ ├─ policy_number / insurer_name / coverage_type ├─ coverage_limit / deductible ├─ start_date / end_date / renewal_status └─ premium_amount 4. rĂ©teg: AdĂłkötelezettsĂ©gek (VehicleTaxObligation) - ÚJ ├─ tax_type / authority / assessment_period ├─ tax_amount / due_date └─ payment_status / exemption_status ``` ### 3.2 StratĂ©gia összefoglalĂĄsa **1. rĂ©teg - `AssetFinancials` bƑvĂ­tĂ©se:** - Egyszeri beszerzĂ©si adatok: vĂ©telĂĄr, ĂĄfa, aktivĂĄlĂĄs dĂĄtuma - FinanszĂ­rozĂĄsi adatok: elƑleg, havi törlesztƑ, maradvĂĄnyĂ©rtĂ©k, futamidƑ, kamatlĂĄb, szerzƑdĂ©sszĂĄm - 1:1 kapcsolatban az Asset-tel **2. rĂ©teg - `AssetCost` (mĂĄr lĂ©tezik, vĂĄltoztatĂĄs nĂ©lkĂŒl):** - Minden operatĂ­v költsĂ©g itt landol: szerviz, ĂŒzemanyag, biztosĂ­tĂĄsi dĂ­j befizetĂ©sek, adĂł befizetĂ©sek - JĂłvĂĄhagyĂĄsi workflow (DRAFT → APPROVED) **3. rĂ©teg - `VehicleInsurancePolicy` (ÚJ modell javasolt):** - A biztosĂ­tĂĄsi kötvĂ©ny metaadatai - A dĂ­j befizetĂ©sek az AssetCost-ban rögzĂ­tĂ©sre kerĂŒlnek **4. rĂ©teg - `VehicleTaxObligation` (ÚJ modell javasolt):** - Az adĂłkötelezettsĂ©g metaadatai - A dĂ­j befizetĂ©sek az AssetCost-ban rögzĂ­tĂ©sre kerĂŒlnek ### 3.3 DöntĂ©si fa ``` PĂ©nzĂŒgyi rekord Ă©rkezik │ ├─ Egyszeri beszerzĂ©si/vĂĄsĂĄrlĂĄsi adat? │ → AssetFinancials │ ├─ FinanszĂ­rozĂĄsi szerzƑdĂ©s (lĂ­zing/hitel)? │ → AssetFinancials │ ├─ Rendszeres dĂ­j befizetĂ©s (biztosĂ­tĂĄs, adĂł)? │ → AssetCost │ ├─ BiztosĂ­tĂĄsi kötvĂ©ny adatai? │ → VehicleInsurancePolicy │ └─ AdĂłkötelezettsĂ©g adatai? → VehicleTaxObligation ``` --- ## 4. MĂłdosĂ­tandĂł FĂĄjlok (TervezĂ©s - NEM kĂłdolva) | FĂĄjl | MƱvelet | |------|---------| | `backend/app/models/vehicle/asset.py` | `AssetFinancials` bƑvĂ­tĂ©se lĂ­zing/hitel mezƑkkel + Ășj `VehicleInsurancePolicy` + `VehicleTaxObligation` modellek | | `backend/app/schemas/asset.py` | `AssetFinancials` Pydantic schema bƑvĂ­tĂ©se | | `backend/app/services/asset_service.py` | `AssetService.create_or_claim_vehicle()` frissĂ­tĂ©se (jelenleg hardcode 0 Ă©rtĂ©k) | | `backend/app/api/v1/endpoints/financials.py` | PotenciĂĄlisan Ășj endpoint a biztosĂ­tĂĄs/adĂł CRUD-hoz | --- ## 5. KonklĂșziĂł 1. **`AssetFinancials`** jelenleg is alkalmas a beszerzĂ©si adatok tĂĄrolĂĄsĂĄra, de **hiĂĄnyoznak belƑle a lĂ­zing-specifikus mezƑk**. 2. **`AssetCost`** a helyes modell az operatĂ­v költsĂ©gekhez (beleĂ©rtve a biztosĂ­tĂĄsi dĂ­jakat Ă©s adĂł befizetĂ©seket is). A `VehicleExpenses` legacy modell kivezetendƑ. 3. **DedikĂĄlt modellek** (`VehicleInsurancePolicy`, `VehicleTaxObligation`) szĂŒksĂ©gesek a biztosĂ­tĂĄsi kötvĂ©nyek Ă©s adĂłkötelezettsĂ©gek metaadatainak tĂĄrolĂĄsĂĄhoz, mĂ­g a tĂ©nyleges befizetĂ©sek az `AssetCost`-ban landolnak.