Advertisement
kompilainenn

Untitled

Dec 24th, 2024
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.18 KB | None | 0 0
  1. from sqlalchemy import ForeignKey
  2. from sqlalchemy.orm import Mapped, mapped_column, relationship
  3. from database import Base
  4. from datetime import datetime
  5.  
  6. class Head(Base):
  7.     head_name: Mapped[str]
  8.  
  9.     objects: Mapped[list["Object"]] = relationship(
  10.         "Object",
  11.         back_populates="head"
  12.     )
  13.    
  14. class Currency(Base):
  15.     currency: Mapped[str]
  16.  
  17.     contracts: Mapped[list["Contract"]] = relationship(
  18.         "Contract",
  19.         back_populates="currency"
  20.     )
  21.  
  22.     payments: Mapped[list["Payment"]] = relationship(
  23.         "Payment",
  24.         back_populates="currency"
  25.     )
  26.  
  27.     executions: Mapped[list["Execution"]] = relationship(
  28.         "Execution",
  29.         back_populates="currency"
  30.     )
  31.  
  32. class Object(Base):
  33.     object_name: Mapped[str]
  34.     subobject: Mapped[str]
  35.     ip_number: Mapped[str]
  36.     object_cost: Mapped[int]
  37.     head: Mapped[int] = mapped_column(ForeignKey('heads.id'))
  38.  
  39.     heads: Mapped["Head"] = relationship(
  40.         "Head",
  41.         back_populates="object"
  42.     )
  43.  
  44.     contracts: Mapped[list["Contract"]] = relationship(
  45.         "Contract",
  46.         back_populates="object"    
  47.     )
  48.  
  49. class Contractor(Base):
  50.     name: Mapped[str]
  51.     inn: Mapped[int]
  52.     kpp: Mapped[int]
  53.     ogrn: Mapped[int]
  54.     description: Mapped[str]
  55.     contacts: Mapped[str]
  56.  
  57.     contracts: Mapped[list["Contract"]] = relationship(
  58.         "Contract",
  59.         back_populates="contractor"    
  60.     )
  61.  
  62. class Customer(Base):
  63.     name: Mapped[str]
  64.     inn: Mapped[int]
  65.     kpp: Mapped[int]
  66.     ogrn: Mapped[int]
  67.     description: Mapped[str]
  68.     contacts: Mapped[str]    
  69.  
  70.     contracts: Mapped[list["Contract"]] = relationship(
  71.         "Contract",
  72.         back_populates="customer"    
  73.     )
  74.  
  75. class Contract(Base):
  76.     contractor: Mapped[int] = mapped_column(ForeignKey('contractors.id'))
  77.     customer: Mapped[int] = mapped_column(ForeignKey('customers.id'))
  78.     subobject: Mapped[int] = mapped_column(ForeignKey('objects.id'))
  79.     number: Mapped[str]
  80.     number_aa: Mapped[str]
  81.     unmber_spec: Mapped[str]
  82.     date: Mapped[datetime]
  83.     cost_roubles: Mapped[float]
  84.     currency: Mapped[int] = mapped_column(ForeignKey('currencys.id'))
  85.     cost_currency: Mapped[float]
  86.     description: Mapped[str]
  87.     date_start: Mapped[datetime]
  88.     date_opentext: Mapped[datetime]
  89.     date_approve: Mapped[datetime]
  90.     date_sign: Mapped[datetime]
  91.     comments: Mapped[str]
  92.  
  93.     contractors: Mapped["Contractor"] = relationship(
  94.         "Contractor",
  95.         back_populates="contract"    
  96.     )
  97.  
  98.     customers: Mapped["Customer"] = relationship(
  99.         "Customer",
  100.         back_populates="contract"    
  101.     )
  102.  
  103.     objects: Mapped["Object"] = relationship(
  104.         "Object",
  105.         back_populates="contract"
  106.     )
  107.  
  108.     currencys: Mapped["Currency"] = relationship(
  109.         "Currency",
  110.         back_populates="contract"
  111.     )
  112.  
  113.     payments: Mapped[list["Payment"]] = relationship(
  114.         "Payment",
  115.         back_populates="contract"
  116.     )
  117.  
  118.     executions: Mapped[list["Execution"]] = relationship(
  119.         "Execution",
  120.         back_populates="contract"
  121.     )
  122.    
  123. class Payment(Base):
  124.     contract: Mapped[int] = mapped_column(ForeignKey('contracts.id'))
  125.     cost_payment_roubles: Mapped[float]
  126.     currency: Mapped[int] = mapped_column(ForeignKey('currencys.id'))
  127.     cost_payment_curency: Mapped[float]
  128.     date_payment: Mapped[datetime]
  129.     description: Mapped[str]
  130.  
  131.     contracts: Mapped["Contract"] = relationship(
  132.         "Contract",
  133.         back_populates="payment"
  134.     )
  135.  
  136.     currencys: Mapped["Currency"] = relationship(
  137.         "Currency",
  138.         back_populates="payment"
  139.     )
  140.  
  141. class Execution(Base):
  142.     contract: Mapped[int] = mapped_column(ForeignKey('contracts.id'))
  143.     cost_execution_roubles: Mapped[float]
  144.     currency: Mapped[int] = mapped_column(ForeignKey('currencys.id'))
  145.     cost_execution_curency: Mapped[float]
  146.     number_document: Mapped[str]
  147.     date_document: Mapped[datetime]
  148.  
  149.     contracts: Mapped["Contract"] = relationship(
  150.         "Contract",
  151.         back_populates="execution"
  152.     )
  153.  
  154.     currencys: Mapped["Currency"] = relationship(
  155.         "Currency",
  156.         back_populates="execution"
  157.     )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement