Skip to content

Commit 02e511f

Browse files
committed
feature/fix: user profile model created & migrations created and fixed & user model updated
1 parent 14d9a4f commit 02e511f

File tree

9 files changed

+104
-15
lines changed

9 files changed

+104
-15
lines changed

migrations/env.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
from sqlmodel import SQLModel
66

77
from pkg.config import Config
8-
from src.auth.models import User
8+
from src.auth.models import PasswordResetLog, TokenBlacklist, User
9+
from src.profile.models import UserProfile
910

1011
config = context.config
1112

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
"""password_reset_log
2+
3+
Revision ID: 2e1f47c5da46
4+
Revises: 534a72530dd6
5+
Create Date: 2024-10-10 04:04:19.461421
6+
7+
"""
8+
9+
from typing import Sequence, Union
10+
11+
import sqlalchemy as sa
12+
from alembic import op
13+
from sqlalchemy.dialects import postgresql
14+
15+
revision: str = "2e1f47c5da46"
16+
down_revision: Union[str, None] = "534a72530dd6"
17+
branch_labels: Union[str, Sequence[str], None] = None
18+
depends_on: Union[str, Sequence[str], None] = None
19+
20+
21+
def upgrade() -> None:
22+
op.create_table(
23+
"password_reset_log",
24+
sa.Column("uid", sa.UUID(), nullable=False),
25+
sa.Column("user_email", sa.VARCHAR(), nullable=False),
26+
sa.Column("requested_at", postgresql.TIMESTAMP(), nullable=False),
27+
sa.PrimaryKeyConstraint("uid"),
28+
)
29+
30+
31+
def downgrade() -> None:
32+
op.drop_table("password_reset_log")
Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
"""token_blacklist_and_password_reset_log
1+
"""token_blacklist
22
33
Revision ID: 534a72530dd6
44
Revises: eb61d8e38af5
@@ -19,13 +19,6 @@
1919

2020

2121
def upgrade() -> None:
22-
op.create_table(
23-
"password_reset_log",
24-
sa.Column("uid", sa.UUID(), nullable=False),
25-
sa.Column("user_email", sa.VARCHAR(), nullable=False),
26-
sa.Column("requested_at", postgresql.TIMESTAMP(), nullable=False),
27-
sa.PrimaryKeyConstraint("uid"),
28-
)
2922
op.create_table(
3023
"token_blacklist",
3124
sa.Column("uid", sa.UUID(), nullable=False),
@@ -38,4 +31,3 @@ def upgrade() -> None:
3831

3932
def downgrade() -> None:
4033
op.drop_table("token_blacklist")
41-
op.drop_table("password_reset_log")
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
"""user_profiles
2+
3+
Revision ID: b2f432857772
4+
Revises: 2e1f47c5da46
5+
Create Date: 2024-10-09 22:39:33.774071
6+
7+
"""
8+
9+
from typing import Sequence, Union
10+
11+
import sqlalchemy as sa
12+
from alembic import op
13+
from sqlalchemy.dialects import postgresql
14+
15+
revision: str = "b2f432857772"
16+
down_revision: Union[str, None] = "2e1f47c5da46"
17+
branch_labels: Union[str, Sequence[str], None] = None
18+
depends_on: Union[str, Sequence[str], None] = None
19+
20+
21+
def upgrade() -> None:
22+
op.create_table(
23+
"user_profiles",
24+
sa.Column("uid", sa.UUID(), nullable=False),
25+
sa.Column("user_uid", sa.UUID(), nullable=False),
26+
sa.Column("bio", sa.VARCHAR(), nullable=False),
27+
sa.Column("avatar", sa.VARCHAR(), nullable=False),
28+
sa.Column("created_at", postgresql.TIMESTAMP(), nullable=False),
29+
sa.Column("updated_at", postgresql.TIMESTAMP(), nullable=False),
30+
sa.ForeignKeyConstraint(
31+
["user_uid"],
32+
["users.uid"],
33+
),
34+
sa.PrimaryKeyConstraint("uid"),
35+
)
36+
37+
38+
def downgrade() -> None:
39+
op.drop_table("user_profiles")

migrations/versions/eb61d8e38af5_create_users.py renamed to migrations/versions/eb61d8e38af5_users.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
"""create_users
1+
"""users
22
33
Revision ID: eb61d8e38af5
44
Revises:

src/auth/models.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@ class User(SQLModel, table=True):
2929
sa_column=Column(pg.TIMESTAMP, nullable=False, default=datetime.now)
3030
)
3131
updated_at: datetime = Field(
32-
sa_column=Column(pg.TIMESTAMP, nullable=False, default=datetime.now)
32+
sa_column=Column(
33+
pg.TIMESTAMP, nullable=False, default=datetime.now, onupdate=datetime.now
34+
)
3335
)
3436

3537
def __repr__(self):

src/auth/service.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ async def activate_user(self, user_uid: str, session: AsyncSession) -> None:
4343
user = await session.get(User, user_uid)
4444
user.is_verified = True
4545
user.is_active = True
46-
user.updated_at = datetime.now()
4746

4847
await session.commit()
4948
await session.refresh(user)
@@ -54,8 +53,6 @@ async def update_user(
5453
for field, value in user_data.items():
5554
setattr(user, field, value)
5655

57-
user.updated_at = datetime.now()
58-
5956
await session.commit()
6057
await session.refresh(user)
6158

src/profile/__init__.py

Whitespace-only changes.

src/profile/models.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import uuid
2+
from datetime import datetime
3+
4+
import sqlalchemy.dialects.postgresql as pg
5+
from sqlmodel import Column, Field, ForeignKey, SQLModel
6+
7+
8+
class UserProfile(SQLModel, table=True):
9+
__tablename__ = "user_profiles"
10+
11+
uid: uuid.UUID = Field(
12+
sa_column=Column(pg.UUID, nullable=False, primary_key=True, default=uuid.uuid4)
13+
)
14+
user_uid: uuid.UUID = Field(
15+
sa_column=Column(pg.UUID, ForeignKey("users.uid"), nullable=False)
16+
)
17+
bio: str = Field(sa_column=Column(pg.VARCHAR, nullable=False))
18+
avatar: str = Field(sa_column=Column(pg.VARCHAR, nullable=False))
19+
created_at: datetime = Field(
20+
sa_column=Column(pg.TIMESTAMP, nullable=False, default=datetime.now)
21+
)
22+
updated_at: datetime = Field(
23+
sa_column=Column(
24+
pg.TIMESTAMP, nullable=False, default=datetime.now, onupdate=datetime.now
25+
)
26+
)

0 commit comments

Comments
 (0)