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 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 ..db.base_class import reg
@@ -21,7 +21,9 @@ if TYPE_CHECKING:
class AccountBase:
__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)
name: Mapped[str] = mapped_column(Unicode, unique=True, 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,
Uuid,
select,
text,
)
from sqlalchemy.orm import Mapped, Session, mapped_column, relationship
@@ -30,7 +31,9 @@ if TYPE_CHECKING:
@reg.mapped_as_dataclass(unsafe_hash=True)
class Attendance:
__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)
date_: Mapped[date] = mapped_column("date", Date, 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 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 ..db.base_class import reg
@@ -21,7 +21,9 @@ if TYPE_CHECKING:
class Batch:
__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)
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)
+4 -2
View File
@@ -6,7 +6,7 @@ import uuid
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 ..db.base_class import reg
@@ -17,7 +17,9 @@ from .login_history import LoginHistory
class Client:
__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)
name: Mapped[str] = mapped_column(Unicode, unique=True, 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 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 ..db.base_class import reg
@@ -21,7 +21,9 @@ if TYPE_CHECKING:
class ClosingStock:
__tablename__ = "closing_stocks"
__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)
cost_centre_id: Mapped[uuid.UUID] = mapped_column(
Uuid,
+4 -2
View File
@@ -2,7 +2,7 @@ import uuid
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 ..db.base_class import reg
@@ -20,7 +20,9 @@ if TYPE_CHECKING:
class CostCentre:
__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)
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 sqlalchemy import DateTime, LargeBinary, Unicode, Uuid
from sqlalchemy import DateTime, LargeBinary, Unicode, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column
from ..db.base_class import reg
@@ -12,7 +12,9 @@ from ..db.base_class import reg
class DbImage:
__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_type: Mapped[str] = mapped_column(Unicode, 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 sqlalchemy import Date, Enum, PickleType, Unicode, Uuid
from sqlalchemy import Date, Enum, PickleType, Unicode, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column
from ..db.base_class import reg
@@ -13,7 +13,9 @@ from .setting_type import SettingType
class DbSetting:
__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)
data: Mapped[dict] = mapped_column(PickleType) # type: ignore[type-arg]
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 sqlalchemy import ForeignKey, Integer, Uuid
from sqlalchemy import ForeignKey, Integer, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column, relationship
from ..db.base_class import reg
@@ -15,7 +15,9 @@ if TYPE_CHECKING:
@reg.mapped_as_dataclass(unsafe_hash=True)
class EmployeeBenefit:
__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)
journal_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("journals.id"), 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 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 ..db.base_class import reg
@@ -18,7 +18,9 @@ class Fingerprint:
__tablename__ = "fingerprints"
__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)
date_: Mapped[datetime] = mapped_column("date", DateTime, nullable=False)
+4 -2
View File
@@ -3,7 +3,7 @@ import uuid
from decimal import Decimal
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 ..db.base_class import reg
@@ -16,7 +16,9 @@ if TYPE_CHECKING:
@reg.mapped_as_dataclass(unsafe_hash=True)
class Incentive:
__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)
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)
+4 -1
View File
@@ -9,6 +9,7 @@ from sqlalchemy import (
Numeric,
UniqueConstraint,
Uuid,
text,
type_coerce,
)
from sqlalchemy.ext.hybrid import hybrid_property
@@ -26,7 +27,9 @@ if TYPE_CHECKING:
class Inventory:
__tablename__ = "inventories"
__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(
Uuid,
ForeignKey("vouchers.id"),
+4 -2
View File
@@ -3,7 +3,7 @@ import uuid
from decimal import Decimal
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.orm import Mapped, mapped_column, relationship
@@ -22,7 +22,9 @@ if TYPE_CHECKING:
class Journal:
__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)
amount: Mapped[Decimal] = mapped_column(Numeric(precision=15, scale=2), nullable=False)
voucher_id: Mapped[uuid.UUID] = mapped_column(
+4 -2
View File
@@ -3,7 +3,7 @@ import uuid
from datetime import UTC, datetime
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.schema import ForeignKey
@@ -19,7 +19,9 @@ if TYPE_CHECKING:
class LoginHistory:
__tablename__ = "login_history"
__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)
client_id: Mapped[uuid.UUID] = mapped_column(
Uuid,
+3 -1
View File
@@ -12,7 +12,9 @@ from ..db.base_class import reg
class Period:
__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_till: Mapped[datetime.date] = mapped_column(Date, nullable=False)
+4 -2
View File
@@ -1,6 +1,6 @@
import uuid
from sqlalchemy import Unicode, Uuid
from sqlalchemy import Unicode, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column, relationship
from ..db.base_class import reg
@@ -12,7 +12,9 @@ from .role_permission import RolePermission
class Permission:
__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)
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 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 ..db.base_class import reg
@@ -21,7 +21,9 @@ class Price:
__tablename__ = "prices"
__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)
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)
+3 -1
View File
@@ -16,7 +16,9 @@ if TYPE_CHECKING:
@reg.mapped_as_dataclass(unsafe_hash=True)
class Product:
__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)
versions: Mapped[list["ProductVersion"]] = relationship(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 sqlalchemy import Boolean, Unicode, Uuid
from sqlalchemy import Boolean, Unicode, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column, relationship
from ..db.base_class import reg
@@ -16,7 +16,9 @@ if TYPE_CHECKING:
class ProductGroup:
__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)
nutritional: 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:
__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)
handle: 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 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 ..db.base_class import reg
@@ -19,7 +19,9 @@ if TYPE_CHECKING:
class RateContract:
__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)
vendor_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("accounts.id"), nullable=False)
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 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 ..db.base_class import reg
@@ -19,7 +19,9 @@ class RateContractItem:
__tablename__ = "rate_contract_items"
__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(
Uuid,
ForeignKey("rate_contracts.id"),
+4 -2
View File
@@ -6,7 +6,7 @@ from datetime import date
from decimal import Decimal
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 ..db.base_class import reg
@@ -24,7 +24,9 @@ class Recipe:
__tablename__ = "recipes"
__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)
date_: Mapped[date] = mapped_column("date", Date, nullable=False, index=True)
source: Mapped[str] = mapped_column(Text, nullable=False)
+4 -2
View File
@@ -5,7 +5,7 @@ import uuid
from decimal import Decimal
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 ..db.base_class import reg
@@ -21,7 +21,9 @@ class RecipeItem:
__tablename__ = "recipe_items"
__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)
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)
+4 -2
View File
@@ -1,6 +1,6 @@
import uuid
from sqlalchemy import UniqueConstraint, Uuid
from sqlalchemy import UniqueConstraint, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column
from sqlalchemy.schema import ForeignKey
@@ -12,6 +12,8 @@ class RecipeTag:
__tablename__ = "recipe_tags"
__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"))
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 sqlalchemy import Boolean, Date, Index, Unicode, Uuid
from sqlalchemy import Boolean, Date, Index, Unicode, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column
from ..db.base_class import reg
@@ -14,10 +14,12 @@ from ..db.base_class import reg
class RecipeTemplate:
__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)
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)
__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:
self.name = name
self.date_ = date_
self.text = text
self.text_ = text
self.selected = selected
if id_ is not None:
self.id = id_
+4 -2
View File
@@ -2,7 +2,7 @@ import uuid
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 ..db.base_class import reg
@@ -17,7 +17,9 @@ if TYPE_CHECKING:
class Role:
__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)
permissions: Mapped[list["Permission"]] = relationship(
+4 -2
View File
@@ -1,6 +1,6 @@
import uuid
from sqlalchemy import ForeignKey, UniqueConstraint, Uuid
from sqlalchemy import ForeignKey, UniqueConstraint, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column
from ..db.base_class import reg
@@ -11,6 +11,8 @@ class RolePermission:
__tablename__ = "role_permissions"
__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)
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:
__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?
sku_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("stock_keeping_units.id"), 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 sqlalchemy import ForeignKey, Uuid
from sqlalchemy import ForeignKey, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column, relationship
from ..db.base_class import reg
@@ -21,7 +21,9 @@ if TYPE_CHECKING:
class StockKeepingUnit:
__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: Mapped[Product] = relationship("Product", back_populates="skus")
+4 -2
View File
@@ -2,7 +2,7 @@ import uuid
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 ..db.base_class import reg
@@ -17,7 +17,9 @@ if TYPE_CHECKING:
class Tag:
__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)
recipes: Mapped[list["Recipe"]] = relationship(
+4 -2
View File
@@ -5,7 +5,7 @@ import uuid
from hashlib import md5
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.orm import Mapped, Session, mapped_column, relationship
@@ -27,7 +27,9 @@ def encrypt(val: str) -> str:
class User:
__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)
_password: Mapped[str] = mapped_column("password", Unicode, nullable=False)
locked_out: Mapped[bool] = mapped_column("disabled", Boolean, nullable=False)
+4 -2
View File
@@ -1,6 +1,6 @@
import uuid
from sqlalchemy import ForeignKey, UniqueConstraint, Uuid
from sqlalchemy import ForeignKey, UniqueConstraint, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column
from ..db.base_class import reg
@@ -11,6 +11,8 @@ class UserRole:
__tablename__ = "user_roles"
__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)
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 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 ..db.base_class import reg
@@ -24,7 +24,9 @@ if TYPE_CHECKING:
class Voucher:
__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)
narration: Mapped[str] = mapped_column(Unicode, nullable=False)
is_reconciled: Mapped[bool] = mapped_column(Boolean, nullable=False)
+4 -2
View File
@@ -1,6 +1,6 @@
import uuid
from sqlalchemy import UniqueConstraint, Uuid
from sqlalchemy import UniqueConstraint, Uuid, text
from sqlalchemy.orm import Mapped, mapped_column
from sqlalchemy.schema import ForeignKey
@@ -12,7 +12,9 @@ class VoucherTag:
__tablename__ = "voucher_tags"
__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"))
tag_id: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("tags.id"))