81 lines
2.7 KiB
Python
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")
|