mirror of
https://github.com/idrainformatica/PecFlow.git
synced 2026-06-16 20:55:41 +02:00
vboxes fix
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
"""
|
||||
Schemi Pydantic per Label (tag) e operazioni correlate.
|
||||
"""
|
||||
|
||||
import uuid
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class LabelCreate(BaseModel):
|
||||
name: str = Field(..., min_length=1, max_length=100)
|
||||
color: Optional[str] = Field(None, pattern=r'^#[0-9A-Fa-f]{6}$')
|
||||
|
||||
|
||||
class LabelUpdate(BaseModel):
|
||||
name: Optional[str] = Field(None, min_length=1, max_length=100)
|
||||
color: Optional[str] = Field(None, pattern=r'^#[0-9A-Fa-f]{6}$')
|
||||
|
||||
|
||||
class LabelResponse(BaseModel):
|
||||
id: uuid.UUID
|
||||
tenant_id: uuid.UUID
|
||||
name: str
|
||||
color: Optional[str] = None
|
||||
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
|
||||
# ─── Richieste per assegnazione tag a messaggi ────────────────────────────────
|
||||
|
||||
class MessageLabelSetRequest(BaseModel):
|
||||
"""Sostituisce tutti i tag di un messaggio con quelli indicati."""
|
||||
label_ids: list[uuid.UUID]
|
||||
|
||||
|
||||
class MessageLabelAddRequest(BaseModel):
|
||||
"""Aggiunge tag a un messaggio senza rimuovere quelli esistenti."""
|
||||
label_ids: list[uuid.UUID]
|
||||
|
||||
|
||||
class MessageLabelRemoveRequest(BaseModel):
|
||||
"""Rimuove specifici tag da un messaggio."""
|
||||
label_ids: list[uuid.UUID]
|
||||
|
||||
|
||||
class MessageBulkLabelRequest(BaseModel):
|
||||
"""Aggiunge o rimuove tag da più messaggi in blocco."""
|
||||
message_ids: list[uuid.UUID]
|
||||
label_ids: list[uuid.UUID]
|
||||
action: str = Field(..., pattern=r'^(add|remove)$')
|
||||
|
||||
|
||||
class MessageBulkLabelResponse(BaseModel):
|
||||
updated: int
|
||||
@@ -8,6 +8,8 @@ from typing import Optional
|
||||
|
||||
from pydantic import BaseModel, model_validator
|
||||
|
||||
from app.schemas.label import LabelResponse
|
||||
|
||||
|
||||
class AttachmentResponse(BaseModel):
|
||||
id: uuid.UUID
|
||||
@@ -50,6 +52,7 @@ class MessageResponse(BaseModel):
|
||||
raw_eml_path: Optional[str] = None
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
labels: list[LabelResponse] = []
|
||||
|
||||
@model_validator(mode="before")
|
||||
@classmethod
|
||||
|
||||
Reference in New Issue
Block a user