from datetime import datetime from pydantic import BaseModel from .pagination import PaginatedResponse class InviteCheckResponse(BaseModel): """Response for invite check endpoint.""" valid: bool status: str | None = None error: str | None = None class InviteCreate(BaseModel): """Request model for creating an invite.""" godfather_id: int class InviteResponse(BaseModel): """Response model for invite data (admin view).""" id: int identifier: str godfather_id: int godfather_email: str status: str used_by_id: int | None used_by_email: str | None created_at: datetime spent_at: datetime | None revoked_at: datetime | None class UserInviteResponse(BaseModel): """Response model for a user's invite (simpler than admin view).""" id: int identifier: str status: str used_by_email: str | None created_at: datetime spent_at: datetime | None PaginatedInviteRecords = PaginatedResponse[InviteResponse]