From 8e034766bb7e2d23f88c5ff1a254126f11a5f412 Mon Sep 17 00:00:00 2001 From: Tolmachev Igor Date: Mon, 23 Mar 2026 02:33:54 +0300 Subject: Fix database models --- alembic/versions/940afc736a0f_init_database.py | 72 ++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 alembic/versions/940afc736a0f_init_database.py (limited to 'alembic/versions/940afc736a0f_init_database.py') diff --git a/alembic/versions/940afc736a0f_init_database.py b/alembic/versions/940afc736a0f_init_database.py new file mode 100644 index 0000000..bfaa771 --- /dev/null +++ b/alembic/versions/940afc736a0f_init_database.py @@ -0,0 +1,72 @@ +"""init database + +Revision ID: 940afc736a0f +Revises: +Create Date: 2026-03-23 02:21:35.245634 + +""" + +from typing import Sequence, Union + +import sqlalchemy as sa + +from alembic import op + +# revision identifiers, used by Alembic. +revision: str = "940afc736a0f" +down_revision: Union[str, Sequence[str], None] = None +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + """Upgrade schema.""" + # ### commands auto generated by Alembic - please adjust! ### + op.create_table( + "announcement", + sa.Column("id", sa.Integer(), autoincrement=True, nullable=False), + sa.Column("message", sa.JSON(), nullable=False), + sa.Column("datetime", sa.DateTime(), nullable=False), + sa.PrimaryKeyConstraint("id", name=op.f("pk_announcement")), + ) + op.create_table( + "invoice", + sa.Column("id", sa.Integer(), autoincrement=True, nullable=False), + sa.Column("amount", sa.Float(), nullable=False), + sa.Column("datetime", sa.DateTime(), nullable=False), + sa.PrimaryKeyConstraint("id", name=op.f("pk_invoice")), + ) + op.create_table( + "user", + sa.Column("id", sa.Integer(), autoincrement=False, nullable=False), + sa.Column("role", sa.Enum("REGULAR", "ADMIN", name="userrole"), nullable=False), + sa.Column("vpn_link", sa.String(), nullable=False), + sa.Column("datetime", sa.DateTime(), nullable=False), + sa.PrimaryKeyConstraint("id", name=op.f("pk_user")), + ) + op.create_table( + "payment", + sa.Column("id", sa.Integer(), autoincrement=True, nullable=False), + sa.Column("user_id", sa.Integer(), nullable=False), + sa.Column("invoice_id", sa.Integer(), nullable=False), + sa.Column("receipt_file_id", sa.String(), nullable=False), + sa.Column("datetime", sa.DateTime(), nullable=False), + sa.ForeignKeyConstraint( + ["invoice_id"], ["invoice.id"], name=op.f("fk_payment_invoice_id_invoice") + ), + sa.ForeignKeyConstraint( + ["user_id"], ["user.id"], name=op.f("fk_payment_user_id_user") + ), + sa.PrimaryKeyConstraint("id", name=op.f("pk_payment")), + ) + # ### end Alembic commands ### + + +def downgrade() -> None: + """Downgrade schema.""" + # ### commands auto generated by Alembic - please adjust! ### + op.drop_table("payment") + op.drop_table("user") + op.drop_table("invoice") + op.drop_table("announcement") + # ### end Alembic commands ### -- cgit v1.3