| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- """Schemas for the library trash bin + bulk purge (#1008)."""
- from __future__ import annotations
- from datetime import datetime
- from pydantic import BaseModel, Field
- class PurgePreviewRequest(BaseModel):
- older_than_days: int = Field(ge=1, le=3650, description="Age threshold in days.")
- include_never_printed: bool = True
- 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
|