/
m.makarov
/
FastAPI
Обзор
Документация
Войти
/
m.makarov
/
FastAPI
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
backend/app/models/orders.py
43 строки
2 KB
Maks
Docker
22 дек 2025, 09:27
22 дек 2025, 09:27
66f69be
Код
Авторство
О чём код?
from sqlalchemy import String, Boolean, Integer, ForeignKey, Numeric, DateTime, func from sqlalchemy.orm import Mapped, mapped_column, relationship from decimal import Decimal from datetime import datetime from app.database import Base class Order(Base): __tablename__ = "orders" id: Mapped[int] = mapped_column(primary_key=True) user_id: Mapped[int] = mapped_column( ForeignKey("users.id", ondelete="CASCADE"), nullable=False, index=True ) status: Mapped[str] = mapped_column(String(20), default="pending", nullable=False) total_amount: Mapped[Decimal] = mapped_column(Numeric(10, 2), default=0, nullable=False) created_at: Mapped[datetime] = mapped_column( DateTime(timezone=True), server_default=func.now(), nullable=False ) updated_at: Mapped[datetime] = mapped_column( DateTime(timezone=True), server_default=func.now(), onupdate=func.now(), nullable=False ) user: Mapped["User"] = relationship("User", back_populates="orders") items: Mapped[list["OrderItem"]] = relationship( "OrderItem", back_populates="order", cascade="all, delete-orphan" ) class OrderItem(Base): __tablename__ = "order_items" id: Mapped[int] = mapped_column(primary_key=True) order_id: Mapped[int] = mapped_column( ForeignKey("orders.id", ondelete="CASCADE"), nullable=False, index=True ) product_id: Mapped[int] = mapped_column( ForeignKey("products.id"), nullable=False, index=True ) quantity: Mapped[int] = mapped_column(Integer, nullable=False) unit_price: Mapped[Decimal] = mapped_column(Numeric(10, 2), nullable=False) total_price: Mapped[Decimal] = mapped_column(Numeric(10, 2), nullable=False) order: Mapped["Order"] = relationship("Order", back_populates="items") product: Mapped["Product"] = relationship("Product", back_populates="order_items")