import uuid from sqlalchemy import Float, Integer, String, Text, ForeignKey, func from sqlalchemy.dialects.postgresql import UUID from sqlalchemy.orm import Mapped, mapped_column from datetime import datetime from app.database import Base class Order(Base): __tablename__ = "orders" id: Mapped[int] = mapped_column(Integer, primary_key=True) order_id: Mapped[str] = mapped_column(String(20), unique=True, nullable=False) calculation_id: Mapped[uuid.UUID] = mapped_column(UUID(as_uuid=True), ForeignKey("calculations.id"), nullable=False) client_name: Mapped[str] = mapped_column(String(200), nullable=False) client_phone: Mapped[str] = mapped_column(String(20), nullable=False) client_email: Mapped[str | None] = mapped_column(String(200)) client_company: Mapped[str | None] = mapped_column(String(200)) delivery_method: Mapped[str] = mapped_column(String(50), default="pickup") comment: Mapped[str | None] = mapped_column(Text) status: Mapped[str] = mapped_column(String(30), default="pending") total_rub: Mapped[float] = mapped_column(Float, nullable=False) created_at: Mapped[datetime] = mapped_column(default=func.now()) updated_at: Mapped[datetime] = mapped_column(default=func.now(), onupdate=func.now())