diff options
| author | alex <[email protected]> | 2026-07-15 20:24:31 +0200 |
|---|---|---|
| committer | alex <[email protected]> | 2026-07-15 20:24:31 +0200 |
| commit | 8e12cb9bb66adc7adaf6d276133d6f235d294d23 (patch) | |
| tree | 31aa3f6a06407b39bb23d7cc724c70899795a788 /order-service/app/models | |
| download | order-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.py | 41 |
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") |
