from datetime import datetime

from pydantic import BaseModel


# ── Participants Evenement ────────────────────────────────────────────────────

class ParticipantStatutUpdate(BaseModel):
    statut: str


class ParticipantResponse(BaseModel):
    id: str
    eventId: str
    userId: str
    userName: str | None = None
    userEmail: str | None = None
    statut: str
    dateInscription: datetime
    dateModification: datetime | None = None


# ── Export Signalements ───────────────────────────────────────────────────────

class ExportSignalementsRequest(BaseModel):
    format: str = "csv"  # csv, xlsx, pdf (default: csv)
    dateDebut: datetime | None = None
    dateFin: datetime | None = None
    statuts: list[str] | None = None


class ExportSignalementsResponse(BaseModel):
    exportId: str
    exportedAt: datetime
    downloadUrl: str
    format: str = "csv"


# ── Invitations ───────────────────────────────────────────────────────────────

class InvitationCreate(BaseModel):
    email: str
    typeUtilisateur: str


class InvitationResponse(BaseModel):
    invitationId: str
    email: str
    typeUtilisateur: str
    statut: str
    expireLe: datetime
    dateCreation: datetime | None = None
