from datetime import datetime from decimal import Decimal from pydantic import BaseModel, ConfigDict class MissingItem(BaseModel): code: str title: str description: str weight: int class VehicleScoreRead(BaseModel): model_config = ConfigDict(from_attributes=True) vehicle_id: int completeness_score: int verified_history_score: int maintenance_health_score: int maintenance_status: str profile_quality: str verified_history_status: str missing_items: list[MissingItem] = [] computed_at: datetime class AchievementRead(BaseModel): code: str scope: str title: str description: str icon: str | None = None category: str | None = None unlocked_at: datetime | None = None vehicle_id: int | None = None service_center_id: int | None = None class TimelineItem(BaseModel): id: str date: datetime | str type: str title: str status: str | None = None description: str | None = None amount: Decimal | float | int | None = None metadata: dict | None = None class ServiceCenterScoreRead(BaseModel): model_config = ConfigDict(from_attributes=True) service_center_id: int trust_score: int trust_level: str confirmed_visits_count: int confirmation_rate: Decimal | float dispute_rate: Decimal | float computed_at: datetime