From 7a63523be66e8398a2919dbc0052789cb4c1492d Mon Sep 17 00:00:00 2001 From: itskovacs Date: Sat, 1 Nov 2025 17:47:24 +0100 Subject: [PATCH] :art: add google_apikey field --- .../e75fca7d8759_user_google_api_key.py | 32 +++++++++++++++++++ backend/trip/models/models.py | 13 ++++++++ 2 files changed, 45 insertions(+) create mode 100644 backend/trip/alembic/versions/e75fca7d8759_user_google_api_key.py diff --git a/backend/trip/alembic/versions/e75fca7d8759_user_google_api_key.py b/backend/trip/alembic/versions/e75fca7d8759_user_google_api_key.py new file mode 100644 index 0000000..0df5d52 --- /dev/null +++ b/backend/trip/alembic/versions/e75fca7d8759_user_google_api_key.py @@ -0,0 +1,32 @@ +"""User Google API KEY + +Revision ID: e75fca7d8759 +Revises: 4fadf12fa98c +Create Date: 2025-11-01 16:10:13.277275 + +""" +from alembic import op +import sqlalchemy as sa +import sqlmodel.sql.sqltypes + + +# revision identifiers, used by Alembic. +revision = 'e75fca7d8759' +down_revision = '4fadf12fa98c' +branch_labels = None +depends_on = None + + +def upgrade(): + with op.batch_alter_table('user', schema=None) as batch_op: + batch_op.add_column(sa.Column('google_apikey', sqlmodel.sql.sqltypes.AutoString(), nullable=True)) + + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('user', schema=None) as batch_op: + batch_op.drop_column('google_apikey') + + # ### end Alembic commands ### diff --git a/backend/trip/models/models.py b/backend/trip/models/models.py index f099b46..907d22c 100644 --- a/backend/trip/models/models.py +++ b/backend/trip/models/models.py @@ -96,6 +96,16 @@ class PendingTOTP(BaseModel): username: str +class GooglePlaceResult(BaseModel): + id: str | None = None + name: str | None = None + lat: float | None = None + lng: float | None = None + price: float | None = None + types: list[str] = [] + allows_dogs: bool | None = None + + class ImageBase(SQLModel): filename: str @@ -180,6 +190,7 @@ class User(UserBase, table=True): password: str totp_enabled: bool = False totp_secret: str | None = None + google_apikey: str | None = None class UserUpdate(UserBase): @@ -193,6 +204,7 @@ class UserRead(UserBase): username: str do_not_display: list[str] totp_enabled: bool + google_apikey: bool @classmethod def serialize(cls, obj: User) -> "UserRead": @@ -207,6 +219,7 @@ class UserRead(UserBase): mode_dark=obj.mode_dark, mode_gpx_in_place=obj.mode_gpx_in_place, totp_enabled=obj.totp_enabled, + google_apikey=True if obj.google_apikey else False )