Files
bakery-ia/services/tenant/migrations/versions/002_add_notification_settings.py
2025-11-13 16:01:08 +01:00

58 lines
1.9 KiB
Python

"""Add notification_settings column to tenant_settings table
Revision ID: 002_add_notification_settings
Revises: 001_unified_initial_schema
Create Date: 2025-11-13 15:00:00.000000+00:00
"""
from typing import Sequence, Union
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql
# revision identifiers, used by Alembic.
revision: str = '002_add_notification_settings'
down_revision: Union[str, None] = '001_unified_initial_schema'
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
"""Add notification_settings column with default values"""
# Add column with default value as JSONB
op.add_column(
'tenant_settings',
sa.Column(
'notification_settings',
postgresql.JSON(astext_type=sa.Text()),
nullable=False,
server_default=sa.text("""'{
"whatsapp_enabled": false,
"whatsapp_phone_number_id": "",
"whatsapp_access_token": "",
"whatsapp_business_account_id": "",
"whatsapp_api_version": "v18.0",
"whatsapp_default_language": "es",
"email_enabled": true,
"email_from_address": "",
"email_from_name": "",
"email_reply_to": "",
"enable_po_notifications": true,
"enable_inventory_alerts": true,
"enable_production_alerts": true,
"enable_forecast_alerts": true,
"po_notification_channels": ["email"],
"inventory_alert_channels": ["email"],
"production_alert_channels": ["email"],
"forecast_alert_channels": ["email"]
}'::jsonb""")
)
)
def downgrade() -> None:
"""Remove notification_settings column"""
op.drop_column('tenant_settings', 'notification_settings')