| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- """Schemas for the library trash bin + bulk purge (#1008)."""
- from __future__ import annotations
- from datetime import datetime
- from pydantic import BaseModel, Field
- class PurgePreviewResponse(BaseModel):
- count: int
- total_bytes: int
- sample_filenames: list[str]
- older_than_days: int
- include_never_printed: bool
- class PurgeRequest(BaseModel):
- older_than_days: int = Field(ge=1, le=3650)
- include_never_printed: bool = True
- class PurgeResponse(BaseModel):
- moved_to_trash: int
- class TrashFile(BaseModel):
- id: int
- filename: str
- file_size: int
- thumbnail_path: str | None = None
- folder_id: int | None = None
- folder_name: str | None = None
- created_by_id: int | None = None
- created_by_username: str | None = None
- deleted_at: datetime
- auto_purge_at: datetime
- class TrashListResponse(BaseModel):
- items: list[TrashFile]
- total: int
- retention_days: int
- class TrashSettings(BaseModel):
- retention_days: int = Field(ge=1, le=365)
- auto_purge_enabled: bool = False
- auto_purge_days: int = Field(default=90, ge=7, le=3650)
- auto_purge_include_never_printed: bool = True
- class EmptyTrashResponse(BaseModel):
- deleted: int
|