35 lines
1.1 KiB
Python
Executable File
35 lines
1.1 KiB
Python
Executable File
# /opt/docker/dev/service_finder/backend/app/schemas/asset_cost.py
|
|
from pydantic import BaseModel, ConfigDict, Field
|
|
from typing import Optional, Dict, Any
|
|
from datetime import datetime
|
|
from decimal import Decimal
|
|
from uuid import UUID
|
|
|
|
class AssetCostBase(BaseModel):
|
|
cost_type: str # fuel, service, tax, insurance
|
|
amount_local: Decimal
|
|
currency_local: str = "HUF"
|
|
net_amount_local: Optional[Decimal] = None
|
|
vat_rate: Optional[Decimal] = Field(default=27.0)
|
|
|
|
date: datetime = Field(default_factory=datetime.now)
|
|
mileage_at_cost: Optional[int] = None
|
|
description: Optional[str] = None
|
|
data: Dict[str, Any] = Field(default_factory=dict) # nyugta adatai, GPS koordináták
|
|
|
|
class AssetCostCreate(AssetCostBase):
|
|
asset_id: UUID
|
|
organization_id: int
|
|
|
|
class AssetCostResponse(AssetCostBase):
|
|
id: UUID
|
|
asset_id: UUID
|
|
organization_id: int
|
|
driver_id: Optional[int] = None
|
|
|
|
# Pénzügyi dúsítás (Backend számolja)
|
|
amount_eur: Optional[Decimal] = None
|
|
exchange_rate_used: Optional[Decimal] = None
|
|
created_at: datetime
|
|
|
|
model_config = ConfigDict(from_attributes=True) |