from datetime import datetime from pydantic import BaseModel # ---------- Auth ---------- class RegisterRequest(BaseModel): username: str password: str class LoginRequest(BaseModel): username: str password: str # ---------- Profile ---------- class ProfileCreate(BaseModel): nickname: str class ProfileOut(BaseModel): id: int nickname: str created_at: datetime model_config = {"from_attributes": True} # ---------- Postcard ---------- class PostcardCreate(BaseModel): card_number: str status: str # sent / delivered / received recipient_name: str | None = None country: str | None = None send_time: datetime | None = None arrival_time: datetime | None = None sender_name: str | None = None receive_time: datetime | None = None class PostcardUpdate(BaseModel): card_number: str | None = None status: str | None = None recipient_name: str | None = None country: str | None = None send_time: datetime | None = None arrival_time: datetime | None = None sender_name: str | None = None receive_time: datetime | None = None class PostcardOut(BaseModel): id: int profile_id: int card_number: str status: str recipient_name: str | None country: str | None send_time: datetime | None arrival_time: datetime | None sender_name: str | None receive_time: datetime | None image_front: str | None image_back: str | None created_at: datetime updated_at: datetime model_config = {"from_attributes": True} # ---------- ApiKey ---------- class ApiKeyOut(BaseModel): id: int key: str created_at: datetime model_config = {"from_attributes": True}