/
killogram
/
E-Analyzer
Обзор
Документация
Войти
/
killogram
/
E-Analyzer
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
api/models.py
60 строк
2 KB
Korabliov Kirill
Refactor add purchase feachure
01 июн 2025, 23:54
01 июн 2025, 23:54
9d93c35
Код
Авторство
О чём код?
from sqlalchemy import Column, Integer, String, Text, TIMESTAMP, ForeignKey, Float, UniqueConstraint from sqlalchemy.dialects.postgresql import JSONB from api.database import Base class Purchase(Base): __tablename__ = "purchases" id = Column(Integer, primary_key=True) registry_number = Column(String(255), unique=True, nullable=False) stage = Column(String(255), nullable=False) method = Column(Text, nullable=False) name = Column(Text, nullable=False) law = Column(String(100), nullable=False) okpd2 = Column(Text) extra_data = Column(JSONB, default=dict) created_at = Column(TIMESTAMP) updated_at = Column(TIMESTAMP) search_vector = Column("search_vector", type_=None) __mapper_args__ = { "exclude_properties": ["search_vector"] } class Price(Base): __tablename__ = "prices" id = Column(Integer, primary_key=True) purchase_id = Column(Integer, ForeignKey("purchases.id"), nullable=False) initial_price = Column(Float, nullable=False) currency = Column(String(10), nullable=False) contract_price = Column(Float) contract_currency = Column(String(10)) class Date(Base): __tablename__ = "dates" id = Column(Integer, primary_key=True) purchase_id = Column(Integer, ForeignKey("purchases.id"), nullable=False) placement_date = Column(TIMESTAMP, nullable=False) update_date = Column(TIMESTAMP, nullable=False) application_start_date = Column(TIMESTAMP) application_end_date = Column(TIMESTAMP) class Customer(Base): __tablename__ = "customers" id = Column(Integer, primary_key=True) name = Column(Text, nullable=False) extra_data = Column(JSONB, default=dict) class TrackedPurchase(Base): __tablename__ = "tracked_purchases" id = Column(Integer, primary_key=True) purchase_id = Column(Integer, ForeignKey("purchases.id"), nullable=False) status = Column(String(255), nullable=False) created_at = Column(TIMESTAMP) # Дополнение api/models.py class PurchaseCustomer(Base): __tablename__ = "purchase_customer" id = Column(Integer, primary_key=True) purchase_id = Column(Integer, ForeignKey("purchases.id"), nullable=False) customer_id = Column(Integer, ForeignKey("customers.id"), nullable=False) __table_args__ = (UniqueConstraint('purchase_id', 'customer_id', name='unique_purchase_customer'),)