Skip to content

Commit

Permalink
Add schema. Fix migration name
Browse files Browse the repository at this point in the history
  • Loading branch information
raphodn committed Nov 21, 2023
1 parent 0895125 commit 09721a7
Show file tree
Hide file tree
Showing 2 changed files with 75 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
"""Create Product table
Revision ID: aead2a83cfa8
Revises: 1c8431a64d3a
Create Date: 2023-11-21 18:56:39.786743
"""
from typing import Sequence, Union

import sqlalchemy as sa

from alembic import op

# revision identifiers, used by Alembic.
revision: str = "df15f7cacf48"
down_revision: Union[str, None] = "1c8431a64d3a"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
op.create_table(
"products",
sa.Column("id", sa.Integer(), nullable=False),
sa.Column("code", sa.String(), nullable=True),
sa.Column("off_source", sa.String(length=255), nullable=True),
sa.Column("off_name", sa.String(), nullable=True),
sa.Column("off_quantity", sa.Integer(), nullable=True),
sa.Column("off_image_url", sa.String(), nullable=True),
sa.Column(
"created",
sa.DateTime(timezone=True),
server_default=sa.text("now()"),
nullable=True,
),
sa.Column("updated", sa.DateTime(timezone=True), nullable=True),
sa.PrimaryKeyConstraint("id"),
)
op.create_index(op.f("ix_products_id"), "products", ["id"], unique=False)
op.create_index(op.f("ix_products_off_id"), "products", ["off_id"], unique=True)
# ### end Alembic commands ###


def downgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
op.drop_index(op.f("ix_products_off_id"), table_name="products")
op.drop_index(op.f("ix_products_id"), table_name="products")
op.drop_table("products")
# ### end Alembic commands ###
27 changes: 25 additions & 2 deletions app/schemas.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,17 @@
from typing import Optional

from fastapi_filter.contrib.sqlalchemy import Filter
from pydantic import BaseModel, ConfigDict, Field, field_serializer, field_validator
from pydantic import (
AnyHttpUrl,
BaseModel,
ConfigDict,
Field,
field_serializer,
field_validator,
)
from sqlalchemy_utils import Currency

from app.enums import LocationOSMType
from app.enums import LocationOSMType, ProductOFFSource
from app.models import Price


Expand All @@ -16,6 +23,22 @@ class UserBase(BaseModel):
token: str


class ProductionCreate(BaseModel):
model_config = ConfigDict(from_attributes=True, arbitrary_types_allowed=True)

code: str


class ProductBase(BaseModel):
id: int
off_source: ProductOFFSource | None
off_name: str | None
off_quantity: int | None
off_image_url: AnyHttpUrl | None
created: datetime
updated: datetime | None


class LocationCreate(BaseModel):
model_config = ConfigDict(from_attributes=True, arbitrary_types_allowed=True)

Expand Down

0 comments on commit 09721a7

Please sign in to comment.