Files
PecHub/backend/alembic/versions/0021_add_rem_support.py
T
2026-06-18 11:24:05 +02:00

81 lines
2.7 KiB
Python

"""add rem support to mailboxes and messages
Revision ID: 0021
Revises: 0020
Create Date: 2026-06-18
Aggiunge campi per supporto REM (Registered Electronic Mail europea, ETSI EN 319 532-4):
- mailboxes.protocol_type VARCHAR(10) DEFAULT 'pec_it'
Indica il protocollo della casella: 'pec_it' (PEC italiana) o 'rem_eu' (REM europea)
- mailboxes.rem_provider VARCHAR(100) nullable
Nome del provider REM europeo (es. 'docutel', 'anodet', 'de-mail')
- messages.protocol_type VARCHAR(10) DEFAULT 'pec_it'
Protocollo del messaggio, copiato dalla casella al momento della ricezione
- messages.rem_evidence_type VARCHAR(100) nullable
Tipo evidenza REM grezzo (es. 'SubmissionAcceptance', 'DeliveryInformation')
Valorizzato solo per messaggi REM; None per PEC italiane.
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers
revision = "0021"
down_revision = "0020"
branch_labels = None
depends_on = None
def upgrade() -> None:
# ── Tabella mailboxes ─────────────────────────────────────────────────────
op.add_column(
"mailboxes",
sa.Column(
"protocol_type",
sa.String(10),
nullable=False,
server_default="pec_it",
comment="Tipo protocollo: pec_it (PEC italiana) | rem_eu (REM europea ETSI EN 319 532-4)",
),
)
op.add_column(
"mailboxes",
sa.Column(
"rem_provider",
sa.String(100),
nullable=True,
comment="Nome provider REM europeo (es. docutel, anodet, de-mail)",
),
)
# ── Tabella messages ──────────────────────────────────────────────────────
op.add_column(
"messages",
sa.Column(
"protocol_type",
sa.String(10),
nullable=False,
server_default="pec_it",
comment="Tipo protocollo del messaggio: pec_it | rem_eu",
),
)
op.add_column(
"messages",
sa.Column(
"rem_evidence_type",
sa.String(100),
nullable=True,
comment=(
"Tipo evidenza REM grezzo (es. SubmissionAcceptance, DeliveryInformation). "
"Valorizzato solo per messaggi REM (protocol_type = 'rem_eu')."
),
),
)
def downgrade() -> None:
op.drop_column("mailboxes", "rem_provider")
op.drop_column("mailboxes", "protocol_type")
op.drop_column("messages", "rem_evidence_type")
op.drop_column("messages", "protocol_type")