from pydantic import BaseModel from typing import Optional, Literal, Dict, Any from datetime import datetime class VasTicketBase(BaseModel): status: Optional[ Literal['pending', 'info_required', 'resolved', 'rejected'] ] = None admin_comment: Optional[str] = None extra_fields: Optional[Dict[str, Any]] = None class VasTicketCreate(BaseModel): order_id: str user_id: str type: Literal['refund', 'dispute', 'change_request'] reason: Optional[str] extra_fields: Optional[Dict[str, Any]] class VasTicketUpdate(VasTicketBase): pass class VasTicketOut(VasTicketBase): id: int order_id: str user_id: str type: str reason: Optional[str] created_at: datetime updated_at: datetime class Config: orm_mode = True