- Added billing models and repository for handling bills. - Introduced BillingService to manage payment initiation and bill creation. - Updated user service to remove ticket-related functionality. - Refactored settings to include new billing-related fields. - Removed ticket-related handlers and schemas. - Added new billing handlers for processing payments. - Updated database schema with new bills table and status enum. - Enhanced utility functions to calculate prices considering discounts. - Introduced prehandling for non-private messages. - Updated main application to initialize new billing services and repositories.
42 lines
1.4 KiB
Python
42 lines
1.4 KiB
Python
"""billing
|
||
|
||
Revision ID: d21c5f9364ea
|
||
Revises: f40cab941564
|
||
Create Date: 2026-04-23 19:22:45.686671
|
||
|
||
"""
|
||
from typing import Sequence, Union
|
||
|
||
from alembic import op
|
||
import sqlalchemy as sa
|
||
|
||
|
||
# revision identifiers, used by Alembic.
|
||
revision: str = 'd21c5f9364ea'
|
||
down_revision: Union[str, Sequence[str], None] = 'f40cab941564'
|
||
branch_labels: Union[str, Sequence[str], None] = None
|
||
depends_on: Union[str, Sequence[str], None] = None
|
||
|
||
|
||
def upgrade() -> None:
|
||
"""Upgrade schema."""
|
||
# 1. Сначала создаем тип в базе данных
|
||
# Имя 'billstatus' должно совпадать с тем, что в ошибке
|
||
bind = op.get_bind()
|
||
if bind.dialect.name == 'postgresql':
|
||
op.execute("CREATE TYPE billstatus AS ENUM ('NEW', 'PROCESS', 'UNDERPAID', 'SUCCESS', 'OVERPAID', 'FAIL')")
|
||
|
||
# 2. Теперь добавляем колонку, которая использует этот тип
|
||
op.add_column('bills', sa.Column('status', sa.Enum('NEW', 'PROCESS', 'UNDERPAID', 'SUCCESS', 'OVERPAID', 'FAIL', name='billstatus'), nullable=False))
|
||
|
||
|
||
def downgrade() -> None:
|
||
"""Downgrade schema."""
|
||
# ### commands auto generated by Alembic - please adjust! ###
|
||
op.drop_column('bills', 'status')
|
||
|
||
bind = op.get_bind()
|
||
if bind.dialect.name == 'postgresql':
|
||
op.execute("DROP TYPE billstatus")
|
||
# ### end Alembic commands ###
|