Fix: Add product did not have insert_default or server_default. So I added both to all

This commit is contained in:
tanshu committed 2025-06-27 08:42:47 +00:00
1 parent 2496b5c16e
commit 00a71a63c0
36 files changed
+207 -66

No files matched your search

@@ -0,0 +1,69 @@
"""server_default
Revision ID: e4ee5746aea5
Revises: 52b98cebf96d
Create Date: 2025-06-27 14:01:10.027282
"""
import sqlalchemy as sa
from alembic import op
# revision identifiers, used by Alembic.
revision = "e4ee5746aea5"
down_revision = "52b98cebf96d"
branch_labels = None
depends_on = None
def upgrade():
# Add server default to products
# Tables to update
tables_to_update = [
"accounts",
"attendances",
"batches",
"clients",
"closing_stocks",
"cost_centres",
"employee_benefit",
"employees",
"fingerprints",
"images",
"incentives",
"inventories",
"journals",
"login_history",
"mozimo_stock_register",
"periods",
"permissions",
"prices",
"products",
"product_groups",
"product_versions",
"rate_contract_items",
"rate_contracts",
"recipe_items",
"recipe_tags",
"recipe_templates",
"recipes",
"role_permissions",
"roles",
"settings",
"stock_keeping_units",
"tags",
"user_roles",
"users",
"voucher_tags",
"vouchers",
]
# Apply gen_random_uuid() as server_default for all
for table in tables_to_update:
op.alter_column(table_name=table, column_name="id", server_default=sa.text("gen_random_uuid()"))
def downgrade():
pass
+4 -2
View File
@@ -2,7 +2,7 @@ import uuid
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from sqlalchemy import Boolean, ForeignKey, Integer, Unicode, Uuid, func, select from sqlalchemy import Boolean, ForeignKey, Integer, Unicode, Uuid, func, select, text
from sqlalchemy.orm import Mapped, Session, mapped_column, relationship from sqlalchemy.orm import Mapped, Session, mapped_column, relationship
from ..db.base_class import reg from ..db.base_class import reg
@@ -21,7 +21,9 @@ if TYPE_CHECKING:
class AccountBase: class AccountBase:
__tablename__ = "accounts" __tablename__ = "accounts"
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
code: Mapped[int] = mapped_column(Integer, nullable=False) code: Mapped[int] = mapped_column(Integer, nullable=False)
name: Mapped[str] = mapped_column(Unicode, unique=True, nullable=False) name: Mapped[str] = mapped_column(Unicode, unique=True, nullable=False)
type_id: Mapped[int] = mapped_column("type", Integer, ForeignKey("account_types.id"), nullable=False) type_id: Mapped[int] = mapped_column("type", Integer, ForeignKey("account_types.id"), nullable=False)
+4 -1
View File
@@ -14,6 +14,7 @@ from sqlalchemy import (
Numeric, Numeric,
Uuid, Uuid,
select, select,
text,
) )
from sqlalchemy.orm import Mapped, Session, mapped_column, relationship from sqlalchemy.orm import Mapped, Session, mapped_column, relationship
@@ -30,7 +31,9 @@ if TYPE_CHECKING:
@reg.mapped_as_dataclass(unsafe_hash=True) @reg.mapped_as_dataclass(unsafe_hash=True)
class Attendance: class Attendance:
__tablename__ = "attendances" __tablename__ = "attendances"
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
employee_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("employees.id"), nullable=False) employee_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("employees.id"), nullable=False)
date_: Mapped[date] = mapped_column("date", Date, nullable=False) date_: Mapped[date] = mapped_column("date", Date, nullable=False)
attendance_type: Mapped[int] = mapped_column(Integer, nullable=False) attendance_type: Mapped[int] = mapped_column(Integer, nullable=False)
+4 -2
View File
@@ -6,7 +6,7 @@ from datetime import date
from decimal import Decimal from decimal import Decimal
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from sqlalchemy import Date, ForeignKey, Numeric, Uuid from sqlalchemy import Date, ForeignKey, Numeric, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column, relationship from sqlalchemy.orm import Mapped, mapped_column, relationship
from ..db.base_class import reg from ..db.base_class import reg
@@ -21,7 +21,9 @@ if TYPE_CHECKING:
class Batch: class Batch:
__tablename__ = "batches" __tablename__ = "batches"
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
name: Mapped[date] = mapped_column(Date, nullable=False) name: Mapped[date] = mapped_column(Date, nullable=False)
sku_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("stock_keeping_units.id"), nullable=False) sku_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("stock_keeping_units.id"), nullable=False)
quantity_remaining: Mapped[Decimal] = mapped_column(Numeric(precision=15, scale=2), nullable=False) quantity_remaining: Mapped[Decimal] = mapped_column(Numeric(precision=15, scale=2), nullable=False)
+4 -2
View File
@@ -6,7 +6,7 @@ import uuid
from datetime import UTC, datetime from datetime import UTC, datetime
from sqlalchemy import Boolean, DateTime, Integer, Unicode, Uuid, desc from sqlalchemy import Boolean, DateTime, Integer, Unicode, Uuid, desc, text
from sqlalchemy.orm import Mapped, Session, mapped_column, relationship from sqlalchemy.orm import Mapped, Session, mapped_column, relationship
from ..db.base_class import reg from ..db.base_class import reg
@@ -17,7 +17,9 @@ from .login_history import LoginHistory
class Client: class Client:
__tablename__ = "clients" __tablename__ = "clients"
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
code: Mapped[int] = mapped_column(Integer, unique=True, nullable=False) code: Mapped[int] = mapped_column(Integer, unique=True, nullable=False)
name: Mapped[str] = mapped_column(Unicode, unique=True, nullable=False) name: Mapped[str] = mapped_column(Unicode, unique=True, nullable=False)
enabled: Mapped[bool] = mapped_column(Boolean, nullable=False) enabled: Mapped[bool] = mapped_column(Boolean, nullable=False)
+4 -2
View File
@@ -6,7 +6,7 @@ import uuid
from decimal import Decimal from decimal import Decimal
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from sqlalchemy import Date, ForeignKey, Numeric, UniqueConstraint, Uuid from sqlalchemy import Date, ForeignKey, Numeric, UniqueConstraint, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column, relationship from sqlalchemy.orm import Mapped, mapped_column, relationship
from ..db.base_class import reg from ..db.base_class import reg
@@ -21,7 +21,9 @@ if TYPE_CHECKING:
class ClosingStock: class ClosingStock:
__tablename__ = "closing_stocks" __tablename__ = "closing_stocks"
__table_args__ = (UniqueConstraint("date", "cost_centre_id", "sku_id"),) __table_args__ = (UniqueConstraint("date", "cost_centre_id", "sku_id"),)
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
date_: Mapped[datetime.date] = mapped_column("date", Date, nullable=False) date_: Mapped[datetime.date] = mapped_column("date", Date, nullable=False)
cost_centre_id: Mapped[uuid.UUID] = mapped_column( cost_centre_id: Mapped[uuid.UUID] = mapped_column(
Uuid, Uuid,
+4 -2
View File
@@ -2,7 +2,7 @@ import uuid
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from sqlalchemy import Boolean, Unicode, Uuid from sqlalchemy import Boolean, Unicode, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column, relationship from sqlalchemy.orm import Mapped, mapped_column, relationship
from ..db.base_class import reg from ..db.base_class import reg
@@ -20,7 +20,9 @@ if TYPE_CHECKING:
class CostCentre: class CostCentre:
__tablename__ = "cost_centres" __tablename__ = "cost_centres"
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
name: Mapped[str] = mapped_column(Unicode, unique=True, nullable=False) name: Mapped[str] = mapped_column(Unicode, unique=True, nullable=False)
is_fixture: Mapped[bool] = mapped_column(Boolean, nullable=False) is_fixture: Mapped[bool] = mapped_column(Boolean, nullable=False)
+4 -2
View File
@@ -2,7 +2,7 @@ import uuid
from datetime import UTC, datetime from datetime import UTC, datetime
from sqlalchemy import DateTime, LargeBinary, Unicode, Uuid from sqlalchemy import DateTime, LargeBinary, Unicode, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column from sqlalchemy.orm import Mapped, mapped_column
from ..db.base_class import reg from ..db.base_class import reg
@@ -12,7 +12,9 @@ from ..db.base_class import reg
class DbImage: class DbImage:
__tablename__ = "images" __tablename__ = "images"
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
resource_id: Mapped[uuid.UUID] = mapped_column(Uuid, nullable=False) resource_id: Mapped[uuid.UUID] = mapped_column(Uuid, nullable=False)
resource_type: Mapped[str] = mapped_column(Unicode, nullable=False) resource_type: Mapped[str] = mapped_column(Unicode, nullable=False)
image: Mapped[bytes] = mapped_column(LargeBinary, nullable=False) image: Mapped[bytes] = mapped_column(LargeBinary, nullable=False)
+4 -2
View File
@@ -2,7 +2,7 @@ import uuid
from datetime import date from datetime import date
from sqlalchemy import Date, Enum, PickleType, Unicode, Uuid from sqlalchemy import Date, Enum, PickleType, Unicode, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column from sqlalchemy.orm import Mapped, mapped_column
from ..db.base_class import reg from ..db.base_class import reg
@@ -13,7 +13,9 @@ from .setting_type import SettingType
class DbSetting: class DbSetting:
__tablename__ = "settings" __tablename__ = "settings"
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
name: Mapped[str] = mapped_column(Unicode, unique=True, nullable=False) name: Mapped[str] = mapped_column(Unicode, unique=True, nullable=False)
data: Mapped[dict] = mapped_column(PickleType) # type: ignore[type-arg] data: Mapped[dict] = mapped_column(PickleType) # type: ignore[type-arg]
setting_type: Mapped[SettingType] = mapped_column(Enum(SettingType), nullable=False) setting_type: Mapped[SettingType] = mapped_column(Enum(SettingType), nullable=False)
+4 -2
View File
@@ -2,7 +2,7 @@ import uuid
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from sqlalchemy import ForeignKey, Integer, Uuid from sqlalchemy import ForeignKey, Integer, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column, relationship from sqlalchemy.orm import Mapped, mapped_column, relationship
from ..db.base_class import reg from ..db.base_class import reg
@@ -15,7 +15,9 @@ if TYPE_CHECKING:
@reg.mapped_as_dataclass(unsafe_hash=True) @reg.mapped_as_dataclass(unsafe_hash=True)
class EmployeeBenefit: class EmployeeBenefit:
__tablename__ = "employee_benefit" __tablename__ = "employee_benefit"
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
voucher_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("vouchers.id"), nullable=False) voucher_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("vouchers.id"), nullable=False)
journal_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("journals.id"), nullable=False) journal_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("journals.id"), nullable=False)
gross_salary: Mapped[int] = mapped_column(Integer, nullable=False) gross_salary: Mapped[int] = mapped_column(Integer, nullable=False)
+4 -2
View File
@@ -3,7 +3,7 @@ import uuid
from datetime import datetime from datetime import datetime
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from sqlalchemy import DateTime, ForeignKey, UniqueConstraint, Uuid from sqlalchemy import DateTime, ForeignKey, UniqueConstraint, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column, relationship from sqlalchemy.orm import Mapped, mapped_column, relationship
from ..db.base_class import reg from ..db.base_class import reg
@@ -18,7 +18,9 @@ class Fingerprint:
__tablename__ = "fingerprints" __tablename__ = "fingerprints"
__table_args__ = (UniqueConstraint("date", "employee_id"),) __table_args__ = (UniqueConstraint("date", "employee_id"),)
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
employee_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("employees.id"), nullable=False) employee_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("employees.id"), nullable=False)
date_: Mapped[datetime] = mapped_column("date", DateTime, nullable=False) date_: Mapped[datetime] = mapped_column("date", DateTime, nullable=False)
+4 -2
View File
@@ -3,7 +3,7 @@ import uuid
from decimal import Decimal from decimal import Decimal
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from sqlalchemy import ForeignKey, Numeric, Uuid from sqlalchemy import ForeignKey, Numeric, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column, relationship from sqlalchemy.orm import Mapped, mapped_column, relationship
from ..db.base_class import reg from ..db.base_class import reg
@@ -16,7 +16,9 @@ if TYPE_CHECKING:
@reg.mapped_as_dataclass(unsafe_hash=True) @reg.mapped_as_dataclass(unsafe_hash=True)
class Incentive: class Incentive:
__tablename__ = "incentives" __tablename__ = "incentives"
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
voucher_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("vouchers.id"), nullable=False) voucher_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("vouchers.id"), nullable=False)
journal_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("journals.id"), nullable=False) journal_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("journals.id"), nullable=False)
days_worked: Mapped[Decimal] = mapped_column(Numeric(precision=5, scale=1), nullable=False) days_worked: Mapped[Decimal] = mapped_column(Numeric(precision=5, scale=1), nullable=False)
+4 -1
View File
@@ -9,6 +9,7 @@ from sqlalchemy import (
Numeric, Numeric,
UniqueConstraint, UniqueConstraint,
Uuid, Uuid,
text,
type_coerce, type_coerce,
) )
from sqlalchemy.ext.hybrid import hybrid_property from sqlalchemy.ext.hybrid import hybrid_property
@@ -26,7 +27,9 @@ if TYPE_CHECKING:
class Inventory: class Inventory:
__tablename__ = "inventories" __tablename__ = "inventories"
__table_args__ = (UniqueConstraint("voucher_id", "batch_id"),) __table_args__ = (UniqueConstraint("voucher_id", "batch_id"),)
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
voucher_id: Mapped[uuid.UUID] = mapped_column( voucher_id: Mapped[uuid.UUID] = mapped_column(
Uuid, Uuid,
ForeignKey("vouchers.id"), ForeignKey("vouchers.id"),
+4 -2
View File
@@ -3,7 +3,7 @@ import uuid
from decimal import Decimal from decimal import Decimal
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from sqlalchemy import ColumnElement, ForeignKey, Integer, Numeric, Uuid, type_coerce from sqlalchemy import ColumnElement, ForeignKey, Integer, Numeric, Uuid, text, type_coerce
from sqlalchemy.ext.hybrid import hybrid_property from sqlalchemy.ext.hybrid import hybrid_property
from sqlalchemy.orm import Mapped, mapped_column, relationship from sqlalchemy.orm import Mapped, mapped_column, relationship
@@ -22,7 +22,9 @@ if TYPE_CHECKING:
class Journal: class Journal:
__tablename__ = "journals" __tablename__ = "journals"
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
debit: Mapped[int] = mapped_column(Integer, nullable=False) debit: Mapped[int] = mapped_column(Integer, nullable=False)
amount: Mapped[Decimal] = mapped_column(Numeric(precision=15, scale=2), nullable=False) amount: Mapped[Decimal] = mapped_column(Numeric(precision=15, scale=2), nullable=False)
voucher_id: Mapped[uuid.UUID] = mapped_column( voucher_id: Mapped[uuid.UUID] = mapped_column(
+4 -2
View File
@@ -3,7 +3,7 @@ import uuid
from datetime import UTC, datetime from datetime import UTC, datetime
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from sqlalchemy import DateTime, UniqueConstraint, Uuid from sqlalchemy import DateTime, UniqueConstraint, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column, relationship from sqlalchemy.orm import Mapped, mapped_column, relationship
from sqlalchemy.schema import ForeignKey from sqlalchemy.schema import ForeignKey
@@ -19,7 +19,9 @@ if TYPE_CHECKING:
class LoginHistory: class LoginHistory:
__tablename__ = "login_history" __tablename__ = "login_history"
__table_args__ = (UniqueConstraint("user_id", "client_id", "date"),) __table_args__ = (UniqueConstraint("user_id", "client_id", "date"),)
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
user_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("users.id"), nullable=False) user_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("users.id"), nullable=False)
client_id: Mapped[uuid.UUID] = mapped_column( client_id: Mapped[uuid.UUID] = mapped_column(
Uuid, Uuid,
+3 -1
View File
@@ -12,7 +12,9 @@ from ..db.base_class import reg
class Period: class Period:
__tablename__ = "periods" __tablename__ = "periods"
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
valid_from: Mapped[datetime.date] = mapped_column(Date, nullable=False) valid_from: Mapped[datetime.date] = mapped_column(Date, nullable=False)
valid_till: Mapped[datetime.date] = mapped_column(Date, nullable=False) valid_till: Mapped[datetime.date] = mapped_column(Date, nullable=False)
+4 -2
View File
@@ -1,6 +1,6 @@
import uuid import uuid
from sqlalchemy import Unicode, Uuid from sqlalchemy import Unicode, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column, relationship from sqlalchemy.orm import Mapped, mapped_column, relationship
from ..db.base_class import reg from ..db.base_class import reg
@@ -12,7 +12,9 @@ from .role_permission import RolePermission
class Permission: class Permission:
__tablename__ = "permissions" __tablename__ = "permissions"
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
name: Mapped[str] = mapped_column(Unicode, unique=True, nullable=False) name: Mapped[str] = mapped_column(Unicode, unique=True, nullable=False)
roles: Mapped[list[Role]] = relationship(secondary=RolePermission.__table__, back_populates="permissions") # type: ignore[attr-defined] roles: Mapped[list[Role]] = relationship(secondary=RolePermission.__table__, back_populates="permissions") # type: ignore[attr-defined]
+4 -2
View File
@@ -5,7 +5,7 @@ import uuid
from decimal import Decimal from decimal import Decimal
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from sqlalchemy import ForeignKey, Numeric, UniqueConstraint, Uuid from sqlalchemy import ForeignKey, Numeric, UniqueConstraint, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column, relationship from sqlalchemy.orm import Mapped, mapped_column, relationship
from ..db.base_class import reg from ..db.base_class import reg
@@ -21,7 +21,9 @@ class Price:
__tablename__ = "prices" __tablename__ = "prices"
__table_args__ = (UniqueConstraint("period_id", "product_id"),) __table_args__ = (UniqueConstraint("period_id", "product_id"),)
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
period_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("periods.id"), nullable=False) period_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("periods.id"), nullable=False)
product_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("products.id"), nullable=False) product_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("products.id"), nullable=False)
price: Mapped[Decimal] = mapped_column(Numeric(precision=15, scale=2), nullable=False) price: Mapped[Decimal] = mapped_column(Numeric(precision=15, scale=2), nullable=False)
+3 -1
View File
@@ -16,7 +16,9 @@ if TYPE_CHECKING:
@reg.mapped_as_dataclass(unsafe_hash=True) @reg.mapped_as_dataclass(unsafe_hash=True)
class Product: class Product:
__tablename__ = "products" __tablename__ = "products"
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, server_default=text("gen_random_uuid()")) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
is_fixture: Mapped[bool] = mapped_column(Boolean, nullable=False) is_fixture: Mapped[bool] = mapped_column(Boolean, nullable=False)
versions: Mapped[list["ProductVersion"]] = relationship(back_populates="product") versions: Mapped[list["ProductVersion"]] = relationship(back_populates="product")
skus: Mapped[list["StockKeepingUnit"]] = relationship("StockKeepingUnit", back_populates="product") skus: Mapped[list["StockKeepingUnit"]] = relationship("StockKeepingUnit", back_populates="product")
+4 -2
View File
@@ -2,7 +2,7 @@ import uuid
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from sqlalchemy import Boolean, Unicode, Uuid from sqlalchemy import Boolean, Unicode, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column, relationship from sqlalchemy.orm import Mapped, mapped_column, relationship
from ..db.base_class import reg from ..db.base_class import reg
@@ -16,7 +16,9 @@ if TYPE_CHECKING:
class ProductGroup: class ProductGroup:
__tablename__ = "product_groups" __tablename__ = "product_groups"
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
name: Mapped[str] = mapped_column(Unicode, unique=True, nullable=False) name: Mapped[str] = mapped_column(Unicode, unique=True, nullable=False)
nutritional: Mapped[bool] = mapped_column(Boolean, nullable=False) nutritional: Mapped[bool] = mapped_column(Boolean, nullable=False)
ice_cream: Mapped[bool] = mapped_column(Boolean, nullable=False) ice_cream: Mapped[bool] = mapped_column(Boolean, nullable=False)
+3 -1
View File
@@ -22,7 +22,9 @@ if TYPE_CHECKING:
class ProductVersion: class ProductVersion:
__tablename__ = "product_versions" __tablename__ = "product_versions"
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
product_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("products.id"), nullable=False) product_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("products.id"), nullable=False)
handle: Mapped[str] = mapped_column(Unicode, nullable=False) handle: Mapped[str] = mapped_column(Unicode, nullable=False)
name: Mapped[str] = mapped_column(Unicode, nullable=False) name: Mapped[str] = mapped_column(Unicode, nullable=False)
+4 -2
View File
@@ -3,7 +3,7 @@ import uuid
from datetime import UTC, date, datetime from datetime import UTC, date, datetime
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from sqlalchemy import Date, DateTime, ForeignKey, Unicode, Uuid from sqlalchemy import Date, DateTime, ForeignKey, Unicode, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column, relationship from sqlalchemy.orm import Mapped, mapped_column, relationship
from ..db.base_class import reg from ..db.base_class import reg
@@ -19,7 +19,9 @@ if TYPE_CHECKING:
class RateContract: class RateContract:
__tablename__ = "rate_contracts" __tablename__ = "rate_contracts"
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
date_: Mapped[date] = mapped_column("date", Date, nullable=False, index=True) date_: Mapped[date] = mapped_column("date", Date, nullable=False, index=True)
vendor_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("accounts.id"), nullable=False) vendor_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("accounts.id"), nullable=False)
valid_from: Mapped[date | None] = mapped_column(Date(), nullable=True) valid_from: Mapped[date | None] = mapped_column(Date(), nullable=True)
+4 -2
View File
@@ -3,7 +3,7 @@ import uuid
from decimal import Decimal from decimal import Decimal
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from sqlalchemy import ForeignKey, Numeric, UniqueConstraint, Uuid from sqlalchemy import ForeignKey, Numeric, UniqueConstraint, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column, relationship from sqlalchemy.orm import Mapped, mapped_column, relationship
from ..db.base_class import reg from ..db.base_class import reg
@@ -19,7 +19,9 @@ class RateContractItem:
__tablename__ = "rate_contract_items" __tablename__ = "rate_contract_items"
__table_args__ = (UniqueConstraint("rate_contract_id", "sku_id"),) __table_args__ = (UniqueConstraint("rate_contract_id", "sku_id"),)
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
rate_contract_id: Mapped[uuid.UUID] = mapped_column( rate_contract_id: Mapped[uuid.UUID] = mapped_column(
Uuid, Uuid,
ForeignKey("rate_contracts.id"), ForeignKey("rate_contracts.id"),
+4 -2
View File
@@ -6,7 +6,7 @@ from datetime import date
from decimal import Decimal from decimal import Decimal
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from sqlalchemy import Date, ForeignKey, Numeric, Text, UniqueConstraint, Uuid from sqlalchemy import Date, ForeignKey, Numeric, Text, UniqueConstraint, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column, relationship from sqlalchemy.orm import Mapped, mapped_column, relationship
from ..db.base_class import reg from ..db.base_class import reg
@@ -24,7 +24,9 @@ class Recipe:
__tablename__ = "recipes" __tablename__ = "recipes"
__table_args__ = (UniqueConstraint("sku_id", "date"),) __table_args__ = (UniqueConstraint("sku_id", "date"),)
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
sku_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("stock_keeping_units.id"), nullable=False) sku_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("stock_keeping_units.id"), nullable=False)
date_: Mapped[date] = mapped_column("date", Date, nullable=False, index=True) date_: Mapped[date] = mapped_column("date", Date, nullable=False, index=True)
source: Mapped[str] = mapped_column(Text, nullable=False) source: Mapped[str] = mapped_column(Text, nullable=False)
+4 -2
View File
@@ -5,7 +5,7 @@ import uuid
from decimal import Decimal from decimal import Decimal
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from sqlalchemy import ForeignKey, Numeric, Text, UniqueConstraint, Uuid from sqlalchemy import ForeignKey, Numeric, Text, UniqueConstraint, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column, relationship from sqlalchemy.orm import Mapped, mapped_column, relationship
from ..db.base_class import reg from ..db.base_class import reg
@@ -21,7 +21,9 @@ class RecipeItem:
__tablename__ = "recipe_items" __tablename__ = "recipe_items"
__table_args__ = (UniqueConstraint("recipe_id", "product_id"),) __table_args__ = (UniqueConstraint("recipe_id", "product_id"),)
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
recipe_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("recipes.id"), nullable=False) recipe_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("recipes.id"), nullable=False)
product_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("products.id"), nullable=False) product_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("products.id"), nullable=False)
quantity: Mapped[Decimal] = mapped_column(Numeric(precision=15, scale=2), nullable=False) quantity: Mapped[Decimal] = mapped_column(Numeric(precision=15, scale=2), nullable=False)
+4 -2
View File
@@ -1,6 +1,6 @@
import uuid import uuid
from sqlalchemy import UniqueConstraint, Uuid from sqlalchemy import UniqueConstraint, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column from sqlalchemy.orm import Mapped, mapped_column
from sqlalchemy.schema import ForeignKey from sqlalchemy.schema import ForeignKey
@@ -12,6 +12,8 @@ class RecipeTag:
__tablename__ = "recipe_tags" __tablename__ = "recipe_tags"
__table_args__ = (UniqueConstraint("recipe_id", "tag_id"),) __table_args__ = (UniqueConstraint("recipe_id", "tag_id"),)
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
recipe_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("recipes.id")) recipe_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("recipes.id"))
tag_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("tags.id")) tag_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("tags.id"))
+6 -4
View File
@@ -4,7 +4,7 @@ import uuid
from datetime import date from datetime import date
from sqlalchemy import Boolean, Date, Index, Unicode, Uuid from sqlalchemy import Boolean, Date, Index, Unicode, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column from sqlalchemy.orm import Mapped, mapped_column
from ..db.base_class import reg from ..db.base_class import reg
@@ -14,10 +14,12 @@ from ..db.base_class import reg
class RecipeTemplate: class RecipeTemplate:
__tablename__ = "recipe_templates" __tablename__ = "recipe_templates"
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
name: Mapped[str] = mapped_column(Unicode, unique=True, nullable=False) name: Mapped[str] = mapped_column(Unicode, unique=True, nullable=False)
date_: Mapped[date] = mapped_column("date", Date, nullable=False) date_: Mapped[date] = mapped_column("date", Date, nullable=False)
text: Mapped[str] = mapped_column(Unicode, nullable=False) text_: Mapped[str] = mapped_column("text", Unicode, nullable=False)
selected: Mapped[bool] = mapped_column(Boolean, nullable=False) selected: Mapped[bool] = mapped_column(Boolean, nullable=False)
__table_args__ = ( __table_args__ = (
@@ -32,7 +34,7 @@ class RecipeTemplate:
def __init__(self, name: str, date_: date, text: str, selected: bool, id_: uuid.UUID | None = None) -> None: def __init__(self, name: str, date_: date, text: str, selected: bool, id_: uuid.UUID | None = None) -> None:
self.name = name self.name = name
self.date_ = date_ self.date_ = date_
self.text = text self.text_ = text
self.selected = selected self.selected = selected
if id_ is not None: if id_ is not None:
self.id = id_ self.id = id_
+4 -2
View File
@@ -2,7 +2,7 @@ import uuid
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from sqlalchemy import Unicode, Uuid from sqlalchemy import Unicode, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column, relationship from sqlalchemy.orm import Mapped, mapped_column, relationship
from ..db.base_class import reg from ..db.base_class import reg
@@ -17,7 +17,9 @@ if TYPE_CHECKING:
class Role: class Role:
__tablename__ = "roles" __tablename__ = "roles"
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
name: Mapped[str] = mapped_column(Unicode, unique=True) name: Mapped[str] = mapped_column(Unicode, unique=True)
permissions: Mapped[list["Permission"]] = relationship( permissions: Mapped[list["Permission"]] = relationship(
+4 -2
View File
@@ -1,6 +1,6 @@
import uuid import uuid
from sqlalchemy import ForeignKey, UniqueConstraint, Uuid from sqlalchemy import ForeignKey, UniqueConstraint, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column from sqlalchemy.orm import Mapped, mapped_column
from ..db.base_class import reg from ..db.base_class import reg
@@ -11,6 +11,8 @@ class RolePermission:
__tablename__ = "role_permissions" __tablename__ = "role_permissions"
__table_args__ = (UniqueConstraint("permission_id", "role_id"),) __table_args__ = (UniqueConstraint("permission_id", "role_id"),)
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
permission_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("permissions.id"), nullable=False) permission_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("permissions.id"), nullable=False)
role_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("roles.id"), nullable=False) role_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("roles.id"), nullable=False)
+3 -1
View File
@@ -21,7 +21,9 @@ if TYPE_CHECKING:
class SkuVersion: class SkuVersion:
__tablename__ = "sku_versions" __tablename__ = "sku_versions"
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
# product_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("products.id"), nullable=False) # should i remove this? # product_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("products.id"), nullable=False) # should i remove this?
sku_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("stock_keeping_units.id"), nullable=False) sku_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("stock_keeping_units.id"), nullable=False)
units: Mapped[str] = mapped_column(Unicode, nullable=False) units: Mapped[str] = mapped_column(Unicode, nullable=False)
+4 -2
View File
@@ -4,7 +4,7 @@ import uuid
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from sqlalchemy import ForeignKey, Uuid from sqlalchemy import ForeignKey, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column, relationship from sqlalchemy.orm import Mapped, mapped_column, relationship
from ..db.base_class import reg from ..db.base_class import reg
@@ -21,7 +21,9 @@ if TYPE_CHECKING:
class StockKeepingUnit: class StockKeepingUnit:
__tablename__ = "stock_keeping_units" __tablename__ = "stock_keeping_units"
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
product_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("products.id"), unique=True, nullable=False) product_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("products.id"), unique=True, nullable=False)
product: Mapped[Product] = relationship("Product", back_populates="skus") product: Mapped[Product] = relationship("Product", back_populates="skus")
+4 -2
View File
@@ -2,7 +2,7 @@ import uuid
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from sqlalchemy import Unicode, Uuid from sqlalchemy import Unicode, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column, relationship from sqlalchemy.orm import Mapped, mapped_column, relationship
from ..db.base_class import reg from ..db.base_class import reg
@@ -17,7 +17,9 @@ if TYPE_CHECKING:
class Tag: class Tag:
__tablename__ = "tags" __tablename__ = "tags"
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
name: Mapped[str] = mapped_column(Unicode, unique=True, nullable=False) name: Mapped[str] = mapped_column(Unicode, unique=True, nullable=False)
recipes: Mapped[list["Recipe"]] = relationship( recipes: Mapped[list["Recipe"]] = relationship(
+4 -2
View File
@@ -5,7 +5,7 @@ import uuid
from hashlib import md5 from hashlib import md5
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from sqlalchemy import Boolean, Unicode, Uuid, desc, select from sqlalchemy import Boolean, Unicode, Uuid, desc, select, text
from sqlalchemy.ext.hybrid import hybrid_property from sqlalchemy.ext.hybrid import hybrid_property
from sqlalchemy.orm import Mapped, Session, mapped_column, relationship from sqlalchemy.orm import Mapped, Session, mapped_column, relationship
@@ -27,7 +27,9 @@ def encrypt(val: str) -> str:
class User: class User:
__tablename__ = "users" __tablename__ = "users"
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
name: Mapped[str] = mapped_column("username", Unicode, unique=True, nullable=False) name: Mapped[str] = mapped_column("username", Unicode, unique=True, nullable=False)
_password: Mapped[str] = mapped_column("password", Unicode, nullable=False) _password: Mapped[str] = mapped_column("password", Unicode, nullable=False)
locked_out: Mapped[bool] = mapped_column("disabled", Boolean, nullable=False) locked_out: Mapped[bool] = mapped_column("disabled", Boolean, nullable=False)
+4 -2
View File
@@ -1,6 +1,6 @@
import uuid import uuid
from sqlalchemy import ForeignKey, UniqueConstraint, Uuid from sqlalchemy import ForeignKey, UniqueConstraint, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column from sqlalchemy.orm import Mapped, mapped_column
from ..db.base_class import reg from ..db.base_class import reg
@@ -11,6 +11,8 @@ class UserRole:
__tablename__ = "user_roles" __tablename__ = "user_roles"
__table_args__ = (UniqueConstraint("user_id", "role_id"),) __table_args__ = (UniqueConstraint("user_id", "role_id"),)
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
user_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("users.id"), nullable=False) user_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("users.id"), nullable=False)
role_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("roles.id"), nullable=False) role_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("roles.id"), nullable=False)
+4 -2
View File
@@ -3,7 +3,7 @@ import uuid
from datetime import UTC, date, datetime from datetime import UTC, date, datetime
from typing import TYPE_CHECKING, Optional from typing import TYPE_CHECKING, Optional
from sqlalchemy import Boolean, Date, DateTime, Enum, ForeignKey, Unicode, Uuid from sqlalchemy import Boolean, Date, DateTime, Enum, ForeignKey, Unicode, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column, relationship from sqlalchemy.orm import Mapped, mapped_column, relationship
from ..db.base_class import reg from ..db.base_class import reg
@@ -24,7 +24,9 @@ if TYPE_CHECKING:
class Voucher: class Voucher:
__tablename__ = "vouchers" __tablename__ = "vouchers"
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
date_: Mapped[date] = mapped_column("date", Date, nullable=False, index=True) date_: Mapped[date] = mapped_column("date", Date, nullable=False, index=True)
narration: Mapped[str] = mapped_column(Unicode, nullable=False) narration: Mapped[str] = mapped_column(Unicode, nullable=False)
is_reconciled: Mapped[bool] = mapped_column(Boolean, nullable=False) is_reconciled: Mapped[bool] = mapped_column(Boolean, nullable=False)
+4 -2
View File
@@ -1,6 +1,6 @@
import uuid import uuid
from sqlalchemy import UniqueConstraint, Uuid from sqlalchemy import UniqueConstraint, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column from sqlalchemy.orm import Mapped, mapped_column
from sqlalchemy.schema import ForeignKey from sqlalchemy.schema import ForeignKey
@@ -12,7 +12,9 @@ class VoucherTag:
__tablename__ = "voucher_tags" __tablename__ = "voucher_tags"
__table_args__ = (UniqueConstraint("voucher_id", "tag_id"),) __table_args__ = (UniqueConstraint("voucher_id", "tag_id"),)
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, insert_default=uuid.uuid4) id: Mapped[uuid.UUID] = mapped_column(
Uuid, primary_key=True, insert_default=uuid.uuid4, server_default=text("gen_random_uuid()")
)
voucher_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("vouchers.id")) voucher_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("vouchers.id"))
tag_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("tags.id")) tag_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("tags.id"))