mirror of
https://github.com/idrainformatica/PecFlow.git
synced 2026-06-16 12:45:42 +02:00
76 lines
2.1 KiB
Python
76 lines
2.1 KiB
Python
"""
|
|
Schemi Pydantic per la gestione delle firme automatiche.
|
|
"""
|
|
|
|
import uuid
|
|
from datetime import datetime
|
|
from typing import Literal
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
# ─── Signature ────────────────────────────────────────────────────────────────
|
|
|
|
class SignatureCreate(BaseModel):
|
|
name: str = Field(..., min_length=1, max_length=255)
|
|
description: str | None = Field(None)
|
|
body_html: str | None = Field(None)
|
|
body_text: str | None = Field(None)
|
|
|
|
|
|
class SignatureUpdate(BaseModel):
|
|
name: str | None = Field(None, min_length=1, max_length=255)
|
|
description: str | None = Field(None)
|
|
body_html: str | None = Field(None)
|
|
body_text: str | None = Field(None)
|
|
|
|
|
|
class SignatureResponse(BaseModel):
|
|
id: uuid.UUID
|
|
tenant_id: uuid.UUID
|
|
name: str
|
|
description: str | None
|
|
body_html: str | None
|
|
body_text: str | None
|
|
created_by: uuid.UUID | None
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
model_config = {"from_attributes": True}
|
|
|
|
|
|
class SignatureListResponse(BaseModel):
|
|
items: list[SignatureResponse]
|
|
total: int
|
|
|
|
|
|
# ─── SignatureAssignment ───────────────────────────────────────────────────────
|
|
|
|
SignatureContext = Literal["reply", "compose", "both"]
|
|
|
|
|
|
class SignatureAssignmentCreate(BaseModel):
|
|
signature_id: uuid.UUID
|
|
mailbox_id: uuid.UUID | None = None
|
|
virtual_box_id: uuid.UUID | None = None
|
|
context: SignatureContext = "both"
|
|
|
|
|
|
class SignatureAssignmentResponse(BaseModel):
|
|
id: uuid.UUID
|
|
tenant_id: uuid.UUID
|
|
signature_id: uuid.UUID
|
|
mailbox_id: uuid.UUID | None
|
|
virtual_box_id: uuid.UUID | None
|
|
context: str
|
|
created_at: datetime
|
|
# Nome della firma (join eagerly nel service)
|
|
signature_name: str | None = None
|
|
|
|
model_config = {"from_attributes": True}
|
|
|
|
|
|
class SignatureAssignmentListResponse(BaseModel):
|
|
items: list[SignatureAssignmentResponse]
|
|
total: int
|