58 lines
1.9 KiB
Python
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')
|