vboxes fix

This commit is contained in:
2026-03-19 14:28:09 +01:00
parent b7f7c1f7c0
commit 06dfbfcbc4
30 changed files with 4405 additions and 166 deletions
+55
View File
@@ -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
+3
View File
@@ -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