aboutsummaryrefslogtreecommitdiff
path: root/order-service/app/models
diff options
context:
space:
mode:
authoralex <[email protected]>2026-07-15 20:24:31 +0200
committeralex <[email protected]>2026-07-15 20:24:31 +0200
commit8e12cb9bb66adc7adaf6d276133d6f235d294d23 (patch)
tree31aa3f6a06407b39bb23d7cc724c70899795a788 /order-service/app/models
downloadorder-inventory-system-8e12cb9bb66adc7adaf6d276133d6f235d294d23.tar.xz
order-inventory-system-8e12cb9bb66adc7adaf6d276133d6f235d294d23.zip
init
Diffstat (limited to 'order-service/app/models')
-rw-r--r--order-service/app/models/order.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/order-service/app/models/order.py b/order-service/app/models/order.py
new file mode 100644
index 0000000..1111269
--- /dev/null
+++ b/order-service/app/models/order.py
@@ -0,0 +1,41 @@
+from sqlalchemy import Column, Integer, Numeric, String, DateTime, ForeignKey
+from sqlalchemy.orm import relationship
+from sqlalchemy.sql import func
+from app.core.database import Base
+
+
+class Order(Base):
+ __tablename__ = "orders"
+
+ id = Column(Integer, primary_key=True, index=True)
+ customer_id = Column(Integer, nullable=False, index=True)
+ status = Column(String(20), default="PENDING", nullable=False)
+ total_price = Column(Numeric(10, 2), nullable=False)
+
+ created_at = Column(
+ DateTime(timezone=True), server_default=func.now(), nullable=False
+ )
+ updated_at = Column(
+ DateTime(timezone=True),
+ server_default=func.now(),
+ onupdate=func.now(),
+ nullable=False,
+ )
+
+ items = relationship(
+ "OrderItem", back_populates="order", cascade="all, delete-orphan"
+ )
+
+
+class OrderItem(Base):
+ __tablename__ = "order_items"
+
+ id = Column(Integer, primary_key=True, index=True)
+ order_id = Column(
+ Integer, ForeignKey("orders.id", ondelete="CASCADE"), nullable=False
+ )
+ product_id = Column(Integer, nullable=False)
+ quantity = Column(Integer, nullable=False)
+ price = Column(Numeric(10, 2), nullable=False)
+
+ order = relationship("Order", back_populates="items")