from datetime import datetime

from pydantic import BaseModel, Field


class RessourceCreate(BaseModel):
    titre: str
    description: str | None = None
    categorie: str | None = None
    bucketId: str
    fileId: str
    publicUrl: str
    downloadUrl: str | None = None
    fileName: str | None = None
    mimeType: str | None = None
    sizeBytes: int | None = None


class RessourceUpdate(BaseModel):
    titre: str | None = None
    description: str | None = None
    categorie: str | None = None
    publicUrl: str | None = None
    downloadUrl: str | None = None



class RessourceResponse(BaseModel):
    id: str
    titre: str
    description: str | None = None
    categorie: str | None = None
    bucketId: str
    fileId: str
    fileName: str
    mimeType: str
    sizeBytes: int
    publicUrl: str
    downloadUrl: str | None = None
    auteurId: str | None = None
    dateCreation: datetime


class RessourceUploadResponse(BaseModel):
    resourceId: str
    fileId: str
    bucketId: str
    fileName: str
    mimeType: str
    sizeBytes: int
    publicUrl: str
    downloadUrl: str
    createdAt: datetime


class RessourceDeleteResponse(BaseModel):
    id: str
    deleted: bool = Field(default=True)
