aboutsummaryrefslogtreecommitdiff
path: root/alembic/versions/c0c4d0fbcee2_init_database.py
blob: 8f618469c113949db8bb17391959f95892346f34 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
"""init database

Revision ID: c0c4d0fbcee2
Revises:
Create Date: 2026-03-23 21:19:28.195907

"""

from typing import Sequence, Union

import sqlalchemy as sa

from alembic import op

# revision identifiers, used by Alembic.
revision: str = "c0c4d0fbcee2"
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("message", sa.JSON(), 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", sa.JSON(), nullable=False),
        sa.Column(
            "status",
            sa.Enum("PENDING", "ACCEPTED", "REJECTED", name="paymentstatus"),
            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 ###