Skip to content

Commit 27b36fe

Browse files
committed
Added migrations for referrals
1 parent 9c78714 commit 27b36fe

1 file changed

Lines changed: 75 additions & 0 deletions

File tree

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
"""Added referrals
2+
3+
Revision ID: f23331e973f8
4+
Revises: 4a8c6c4dc451
5+
Create Date: 2025-10-25 22:36:06.154882
6+
7+
"""
8+
from typing import Sequence, Union
9+
10+
import sqlalchemy as sa
11+
from alembic import op
12+
13+
# revision identifiers, used by Alembic.
14+
revision: str = "f23331e973f8"
15+
down_revision: Union[str, None] = "4a8c6c4dc451"
16+
branch_labels: Union[str, Sequence[str], None] = None
17+
depends_on: Union[str, Sequence[str], None] = None
18+
19+
20+
def upgrade() -> None:
21+
# ### commands auto generated by Alembic - please adjust! ###
22+
op.create_table(
23+
"discount_coupons",
24+
sa.Column("id", sa.Integer(), nullable=False),
25+
sa.Column("user_id", sa.Integer(), nullable=True),
26+
sa.Column("referrer_user_id", sa.Integer(), nullable=True),
27+
sa.Column("discount_percentage", sa.Integer(), nullable=True),
28+
sa.Column("used", sa.Boolean(), nullable=True),
29+
sa.Column("created_at", sa.DateTime(), nullable=True),
30+
sa.Column("used_at", sa.DateTime(), nullable=True),
31+
sa.ForeignKeyConstraint(
32+
["referrer_user_id"],
33+
["users.id"],
34+
),
35+
sa.ForeignKeyConstraint(
36+
["user_id"],
37+
["users.id"],
38+
),
39+
sa.PrimaryKeyConstraint("id"),
40+
)
41+
op.create_index(
42+
op.f("ix_discount_coupons_id"), "discount_coupons", ["id"], unique=False
43+
)
44+
op.create_index(
45+
op.f("ix_discount_coupons_referrer_user_id"),
46+
"discount_coupons",
47+
["referrer_user_id"],
48+
unique=False,
49+
)
50+
op.create_index(
51+
op.f("ix_discount_coupons_user_id"),
52+
"discount_coupons",
53+
["user_id"],
54+
unique=False,
55+
)
56+
op.add_column("orders", sa.Column("final_price", sa.Float(), nullable=True))
57+
op.add_column("users", sa.Column("referral_code", sa.String(), nullable=True))
58+
op.create_index(
59+
op.f("ix_users_referral_code"), "users", ["referral_code"], unique=True
60+
)
61+
# ### end Alembic commands ###
62+
63+
64+
def downgrade() -> None:
65+
# ### commands auto generated by Alembic - please adjust! ###
66+
op.drop_index(op.f("ix_users_referral_code"), table_name="users")
67+
op.drop_column("users", "referral_code")
68+
op.drop_column("orders", "final_price")
69+
op.drop_index(op.f("ix_discount_coupons_user_id"), table_name="discount_coupons")
70+
op.drop_index(
71+
op.f("ix_discount_coupons_referrer_user_id"), table_name="discount_coupons"
72+
)
73+
op.drop_index(op.f("ix_discount_coupons_id"), table_name="discount_coupons")
74+
op.drop_table("discount_coupons")
75+
# ### end Alembic commands ###

0 commit comments

Comments
 (0)