Skip to content

Commit a91944e

Browse files
committed
Added changes
1 parent 2763efe commit a91944e

3 files changed

Lines changed: 43 additions & 40 deletions

File tree

backend/app/alembic/versions/fd8dcfe8d4fd_add_wallet_and_transaction_models.py

Lines changed: 39 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -5,51 +5,62 @@
55
Create Date: 2025-09-12 22:28:29.785616
66
77
"""
8-
from alembic import op
9-
import sqlalchemy as sa
10-
import sqlmodel.sql.sqltypes
118

9+
import sqlalchemy as sa
10+
from alembic import op
1211

1312
# revision identifiers, used by Alembic.
14-
revision = 'fd8dcfe8d4fd'
15-
down_revision = '1a31ce608336'
13+
revision = "fd8dcfe8d4fd"
14+
down_revision = "1a31ce608336"
1615
branch_labels = None
1716
depends_on = None
1817

1918

2019
def upgrade():
2120
# Create wallet table
2221
op.create_table(
23-
'wallet',
24-
sa.Column('id', sa.UUID(), nullable=False),
25-
sa.Column('user_id', sa.UUID(), nullable=False),
26-
sa.Column('currency', sa.Enum('USD', 'EUR', 'RUB', name='currencyenum'), nullable=False),
27-
sa.Column('balance', sa.Numeric(precision=10, scale=2), nullable=False),
28-
sa.ForeignKeyConstraint(['user_id'], ['user.id'], ondelete='CASCADE'),
29-
sa.PrimaryKeyConstraint('id')
22+
"wallet",
23+
sa.Column("id", sa.UUID(), nullable=False),
24+
sa.Column("user_id", sa.UUID(), nullable=False),
25+
sa.Column(
26+
"currency",
27+
sa.Enum("USD", "EUR", "RUB", name="currencyenum"),
28+
nullable=False,
29+
),
30+
sa.Column("balance", sa.Numeric(precision=10, scale=2), nullable=False),
31+
sa.ForeignKeyConstraint(["user_id"], ["user.id"], ondelete="CASCADE"),
32+
sa.PrimaryKeyConstraint("id"),
3033
)
31-
34+
3235
# Create transaction table
3336
op.create_table(
34-
'transaction',
35-
sa.Column('id', sa.UUID(), nullable=False),
36-
sa.Column('wallet_id', sa.UUID(), nullable=False),
37-
sa.Column('amount', sa.Numeric(precision=10, scale=2), nullable=False),
38-
sa.Column('type', sa.Enum('credit', 'debit', name='transactiontypeenum'), nullable=False),
39-
sa.Column('currency', sa.Enum('USD', 'EUR', 'RUB', name='currencyenum'), nullable=False),
40-
sa.Column('timestamp', sa.DateTime(), nullable=False),
41-
sa.ForeignKeyConstraint(['wallet_id'], ['wallet.id'], ondelete='CASCADE'),
42-
sa.PrimaryKeyConstraint('id')
37+
"transaction",
38+
sa.Column("id", sa.UUID(), nullable=False),
39+
sa.Column("wallet_id", sa.UUID(), nullable=False),
40+
sa.Column("amount", sa.Numeric(precision=10, scale=2), nullable=False),
41+
sa.Column(
42+
"type",
43+
sa.Enum("credit", "debit", name="transactiontypeenum"),
44+
nullable=False,
45+
),
46+
sa.Column(
47+
"currency",
48+
sa.Enum("USD", "EUR", "RUB", name="currencyenum"),
49+
nullable=False,
50+
),
51+
sa.Column("timestamp", sa.DateTime(), nullable=False),
52+
sa.ForeignKeyConstraint(["wallet_id"], ["wallet.id"], ondelete="CASCADE"),
53+
sa.PrimaryKeyConstraint("id"),
4354
)
4455

4556

4657
def downgrade():
4758
# Drop transaction table
48-
op.drop_table('transaction')
49-
59+
op.drop_table("transaction")
60+
5061
# Drop wallet table
51-
op.drop_table('wallet')
52-
62+
op.drop_table("wallet")
63+
5364
# Drop enums
54-
op.execute('DROP TYPE IF EXISTS transactiontypeenum')
55-
op.execute('DROP TYPE IF EXISTS currencyenum')
65+
op.execute("DROP TYPE IF EXISTS transactiontypeenum")
66+
op.execute("DROP TYPE IF EXISTS currencyenum")

backend/app/api/routes/transactions.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,7 @@
77
from app.api.deps import CurrentUser, SessionDep
88
from app.constants import NOT_FOUND_CODE
99
from app.crud import create_transaction, get_wallet_by_id, get_wallet_transactions
10-
from app.models import (
11-
TransactionCreate,
12-
TransactionPublic,
13-
TransactionsPublic,
14-
)
10+
from app.models import TransactionCreate, TransactionPublic, TransactionsPublic
1511

1612
router = APIRouter(prefix="/transactions", tags=["transactions"])
1713

backend/app/api/routes/wallets.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,7 @@
77
from app.api.deps import CurrentUser, SessionDep
88
from app.constants import BAD_REQUEST_CODE, NOT_FOUND_CODE
99
from app.crud import create_wallet, get_user_wallets, get_wallet_by_id
10-
from app.models import (
11-
WalletCreate,
12-
WalletPublic,
13-
WalletsPublic,
14-
)
10+
from app.models import WalletCreate, WalletPublic, WalletsPublic
1511

1612
router = APIRouter(prefix="/wallets", tags=["wallets"])
1713

@@ -53,11 +49,11 @@ def read_wallet(
5349
wallet = get_wallet_by_id(session=session, wallet_id=wallet_id)
5450
if not wallet:
5551
raise HTTPException(status_code=NOT_FOUND_CODE, detail="Wallet not found")
56-
52+
5753
if wallet.user_id != current_user.id and not current_user.is_superuser:
5854
raise HTTPException(
5955
status_code=BAD_REQUEST_CODE,
6056
detail="Not enough permissions",
6157
)
62-
58+
6359
return WalletPublic.model_validate(wallet)

0 commit comments

Comments
 (0)