Fix: Add product did not have insert_default or server_default. So I added both to all
This commit is contained in:
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
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"),
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"),
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"))
|
||||
@@ -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_
|
||||
@@ -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(
|
||||
|
||||
@@ -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)
|
||||
@@ -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,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")
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
|
||||
@@ -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"))
|
||||
|
||||
|
||||
Reference in new issue
Block a user