Files
drivers_bot/app/schemas/gamification.py
2026-05-12 20:06:25 +09:00

61 lines
1.3 KiB
Python

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