aboutsummaryrefslogtreecommitdiffstats
path: root/thallium-backend/src
diff options
context:
space:
mode:
Diffstat (limited to 'thallium-backend/src')
-rw-r--r--thallium-backend/src/orm/products.py18
-rw-r--r--thallium-backend/src/orm/users.py12
2 files changed, 30 insertions, 0 deletions
diff --git a/thallium-backend/src/orm/products.py b/thallium-backend/src/orm/products.py
new file mode 100644
index 0000000..2c07b75
--- /dev/null
+++ b/thallium-backend/src/orm/products.py
@@ -0,0 +1,18 @@
+from decimal import Decimal
+
+from sqlalchemy.orm import Mapped, mapped_column
+from sqlalchemy.types import LargeBinary
+
+from .base import AuditBase, Base
+
+
+class Product(AuditBase, Base):
+ """A product available to be ordered."""
+
+ __tablename__ = "products"
+
+ product_id: Mapped[int] = mapped_column(primary_key=True)
+ name: Mapped[str]
+ description: Mapped[str]
+ price: Mapped[Decimal]
+ image: Mapped[bytes] = mapped_column(LargeBinary, deferred=True)
diff --git a/thallium-backend/src/orm/users.py b/thallium-backend/src/orm/users.py
new file mode 100644
index 0000000..065519a
--- /dev/null
+++ b/thallium-backend/src/orm/users.py
@@ -0,0 +1,12 @@
+from sqlalchemy.orm import Mapped, mapped_column
+
+from .base import AuditBase, Base
+
+
+class User(AuditBase, Base):
+ """An authenticated user of the service."""
+
+ __tablename__ = "users"
+
+ user_id: Mapped[int] = mapped_column(primary_key=True)
+ is_admin: Mapped[bool]