Improve onboarding
This commit is contained in:
@@ -175,7 +175,7 @@ def upgrade() -> None:
|
||||
sa.UniqueConstraint('tenant_id')
|
||||
)
|
||||
|
||||
# Create subscriptions table with all current columns
|
||||
# Create subscriptions table with all quota columns
|
||||
op.create_table('subscriptions',
|
||||
sa.Column('id', sa.UUID(), nullable=False),
|
||||
sa.Column('tenant_id', sa.UUID(), nullable=False),
|
||||
@@ -189,9 +189,33 @@ def upgrade() -> None:
|
||||
sa.Column('cancellation_effective_date', sa.DateTime(timezone=True), nullable=True),
|
||||
sa.Column('stripe_subscription_id', sa.String(255), nullable=True),
|
||||
sa.Column('stripe_customer_id', sa.String(255), nullable=True),
|
||||
# Basic resource limits
|
||||
sa.Column('max_users', sa.Integer(), nullable=True),
|
||||
sa.Column('max_locations', sa.Integer(), nullable=True),
|
||||
sa.Column('max_products', sa.Integer(), nullable=True),
|
||||
sa.Column('max_recipes', sa.Integer(), nullable=True),
|
||||
sa.Column('max_suppliers', sa.Integer(), nullable=True),
|
||||
# Daily/hourly quota limits
|
||||
sa.Column('training_jobs_per_day', sa.Integer(), nullable=True),
|
||||
sa.Column('forecast_generation_per_day', sa.Integer(), nullable=True),
|
||||
sa.Column('api_calls_per_hour', sa.Integer(), nullable=True),
|
||||
# Storage limits
|
||||
sa.Column('file_storage_gb', sa.Integer(), nullable=True),
|
||||
# Data access limits
|
||||
sa.Column('dataset_size_rows', sa.Integer(), nullable=True),
|
||||
sa.Column('forecast_horizon_days', sa.Integer(), nullable=True),
|
||||
sa.Column('historical_data_access_days', sa.Integer(), nullable=True),
|
||||
# Bulk operation limits
|
||||
sa.Column('bulk_import_rows', sa.Integer(), nullable=True),
|
||||
sa.Column('bulk_export_rows', sa.Integer(), nullable=True),
|
||||
# Integration limits
|
||||
sa.Column('webhook_endpoints', sa.Integer(), nullable=True),
|
||||
sa.Column('pos_sync_interval_minutes', sa.Integer(), nullable=True),
|
||||
# Reporting limits
|
||||
sa.Column('report_retention_days', sa.Integer(), nullable=True),
|
||||
# Enterprise-specific limits
|
||||
sa.Column('max_child_tenants', sa.Integer(), nullable=True),
|
||||
# Features and metadata
|
||||
sa.Column('features', sa.JSON(), nullable=True),
|
||||
sa.Column('created_at', sa.DateTime(timezone=True), nullable=False, server_default=sa.text('CURRENT_TIMESTAMP')),
|
||||
sa.Column('updated_at', sa.DateTime(timezone=True), nullable=False, server_default=sa.text('CURRENT_TIMESTAMP'), onupdate=sa.text('CURRENT_TIMESTAMP')),
|
||||
|
||||
Reference in New Issue
Block a user