from typing import Optional
from pydantic import BaseModel
from schemas.user import ShowDriverNoVehicle


class CreateVehicle(BaseModel):
    Model: str
    Year: int
    LicensePlate: str
    Mileage: int
    Capacity: int
    Type: str


class OutputVehicle(BaseModel):
    Id: int
    Model: str
    Year: int
    LicensePlate: str
    Mileage: int
    CurrentLocation: Optional[list[str]] = None
    Fuel: Optional[int] = 0
    Type: str
    DriverHistory: Optional[list[int]] = None
    AssignedDriver: Optional[ShowDriverNoVehicle] = None
    Capacity: int
    Status: str


class UpdateVehicle(BaseModel):
    Mileage: Optional[int]
    Status: Optional[str]
    Capacity: Optional[int]
    Model: Optional[str]
    Year: Optional[int]
    LicensePlate: Optional[str]
    Fuel: Optional[int] = 0
    Type: Optional[str]


class VehicleLocation(BaseModel):
    CurrentLocation: list[str]