from typing import Optional from pydantic import BaseModel from datetime import datetime import enum class KYCStatus(str, enum.Enum): PENDING = "pending" APPROVED = "approved" REJECTED = "rejected" class IDDocumentType(str, enum.Enum): PASSPORT = "passport" ID_CARD = "id_card" DRIVERS_LICENSE = "drivers_license" class KYCBase(BaseModel): full_name: str id_document_type: IDDocumentType id_document_path: str selfie_path: str additional_document_path: Optional[str] = None rejection_reason: Optional[str] = None class KYCCreate(KYCBase): user_id: int class KYCUpdate(BaseModel): status: Optional[KYCStatus] = None rejection_reason: Optional[str] = None class KYCInDBBase(KYCBase): id: int user_id: int status: KYCStatus created_at: datetime updated_at: datetime class Config: orm_mode = True class KYC(KYCInDBBase): pass class KYCApprove(BaseModel): pass class KYCReject(BaseModel): rejection_reason: str