Initial commit: Robot ökoszisztéma v2.0 - Stabilizált jármű és szerviz robotok
This commit is contained in:
56
code-server-config/data/User/History/-1768a9b0/F30V.py
Executable file
56
code-server-config/data/User/History/-1768a9b0/F30V.py
Executable file
@@ -0,0 +1,56 @@
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
from typing import Optional, List
|
||||
from datetime import date, datetime
|
||||
from app.models.expense import ExpenseCategory
|
||||
|
||||
# --- Vehicle Schemas ---
|
||||
class VehicleBase(BaseModel):
|
||||
license_plate: str
|
||||
make: str
|
||||
model: str
|
||||
year: int
|
||||
fuel_type: Optional[str] = None
|
||||
vin: Optional[str] = None
|
||||
initial_odometer: int = 0
|
||||
mot_expiry_date: Optional[date] = None
|
||||
insurance_expiry_date: Optional[date] = None
|
||||
|
||||
class VehicleCreate(VehicleBase):
|
||||
pass
|
||||
|
||||
class VehicleResponse(VehicleBase):
|
||||
id: int
|
||||
current_odometer: int
|
||||
created_at: datetime
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
# --- Event / Expense Schemas ---
|
||||
class EventBase(BaseModel):
|
||||
event_type: ExpenseCategory
|
||||
date: date
|
||||
odometer_value: int
|
||||
cost_amount: int
|
||||
description: Optional[str] = None
|
||||
is_diy: bool = False
|
||||
|
||||
# Ad-Hoc Provider mező: Ha stringet kapunk, a service megkeresi vagy létrehozza
|
||||
provider_name: Optional[str] = None
|
||||
provider_id: Optional[int] = None # Ha már ismert ID-t küldünk
|
||||
|
||||
class EventCreate(EventBase):
|
||||
pass
|
||||
|
||||
class EventResponse(EventBase):
|
||||
id: int
|
||||
vehicle_id: int
|
||||
odometer_anomaly: bool
|
||||
service_provider_id: Optional[int]
|
||||
image_paths: Optional[List[str]] = []
|
||||
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
class TCOStats(BaseModel):
|
||||
vehicle_id: int
|
||||
total_cost: int
|
||||
breakdown: dict[str, int] # Kategóriánkénti bontás
|
||||
cost_per_km: Optional[float] = 0.0
|
||||
Reference in New Issue
Block a user