from datetime import datetime from pydantic import BaseModel, ConfigDict class UserUpsert(BaseModel): telegram_id: int username: str | None = None first_name: str | None = None last_name: str | None = None locale: str | None = None currency: str | None = None class WebAppAuthRequest(BaseModel): init_data: str class TelegramLoginRequest(BaseModel): id: int first_name: str | None = None last_name: str | None = None username: str | None = None photo_url: str | None = None auth_date: int hash: str class AuthConfig(BaseModel): bot_username: str vapid_public_key: str | None = None class PushSubscriptionKeys(BaseModel): p256dh: str | None = None auth: str | None = None class PushSubscriptionCreate(BaseModel): endpoint: str keys: PushSubscriptionKeys | None = None user_agent: str | None = None class ReminderRead(BaseModel): id: int car_id: int car_name: str title: str service_type: str due_date: str | None = None due_odometer: int | None = None current_odometer: int | None = None priority: str class UserPreferencesUpdate(BaseModel): locale: str | None = None currency: str | None = None class UserRead(UserUpsert): id: int locale: str currency: str created_at: datetime model_config = ConfigDict(from_attributes=True)