from __future__ import annotations

from pydantic import BaseModel


class VoiceSiteDiaryRequest(BaseModel):
    transcript_text: str
    weather_override: str | None = None
    temperature_override: float | None = None


class FuelLogCreateRequest(BaseModel):
    equipment_id: str
    fill_date: str
    fuel_quantity_liters: float
    unit_price_vnd: float
    total_cost_vnd: float = 0.0
    odometer_hours: float
    source_invoice_id: str | None = None


class IpcCreateRequest(BaseModel):
    ipc_number: int
    billing_period_start: str | None = None
    billing_period_end: str | None = None
    gross_claimed_amount_vnd: float
    advance_recovery_amount_vnd: float = 0.0
    retention_withheld_amount_vnd: float = 0.0
    net_certified_amount_vnd: float = 0.0
    status: str = "draft"
    matched_invoice_id: str | None = None
