This commit is contained in:
2024-03-28 08:22:14 +03:00
parent 6ba041a839
commit a72eb31e07
19 changed files with 243 additions and 28 deletions

View File

@@ -4,6 +4,7 @@ from .auth import *
from .deal import *
from .client import *
from .service import *
from .product import *
from .secondary import *
configure_mappers()

View File

@@ -10,6 +10,8 @@ class Client(BaseModel):
name = Column(String, nullable=False, unique=True, comment='Название клиента')
created_at = Column(DateTime, nullable=False, comment='Дата создания')
products = relationship('Product', back_populates='client')
class ClientDetails(BaseModel):
__tablename__ = 'client_details'

View File

@@ -4,7 +4,6 @@ from sqlalchemy import Column, Integer, String, DateTime, ForeignKey, Boolean
from sqlalchemy.orm import relationship
from models.base import BaseModel
from models.secondary import deal_services
@unique
@@ -33,7 +32,7 @@ class Deal(BaseModel):
is_deleted = Column(Boolean, nullable=False, server_default='0', default=False, comment='Удалена')
is_completed = Column(Boolean, nullable=False, server_default='0', default=False, comment='Завершена')
services = relationship('Service', secondary=deal_services)
services = relationship('DealService', back_populates='deal')
class DealStatusHistory(BaseModel):

View File

@@ -11,5 +11,5 @@ class Product(BaseModel):
article = Column(String, nullable=False, index=True)
client_id = Column(Integer, ForeignKey('clients.id'), nullable=False, comment='ID сделки')
client = relationship('Client', back_populates='status_history')
client = relationship('Client', back_populates='products')

View File

@@ -1,10 +1,15 @@
from sqlalchemy import Table, Column, Integer, ForeignKey
from sqlalchemy.orm import relationship
from models.base import metadata
from models.base import metadata, BaseModel
deal_services = Table(
'deal_services', metadata,
Column('deal_id', Integer, ForeignKey('deals.id')),
Column('service_id', Integer, ForeignKey('services.id')),
Column('quantity', Integer)
)
class DealService(BaseModel):
__tablename__ = 'deal_services'
deal_id = Column(Integer, ForeignKey('deals.id'), nullable=False, comment='ID Сделки', primary_key=True)
deal = relationship('Deal', back_populates='services')
service_id = Column(Integer, ForeignKey('services.id'), nullable=False, comment='ID Услуги', primary_key=True)
service = relationship('Service')
quantity = Column(Integer, nullable=False, comment='Кол-во услуги')

View File

@@ -1,12 +1,12 @@
from sqlalchemy import Column, Integer, String, ForeignKey, Double
from sqlalchemy.orm import relationship
from sqlalchemy.orm import relationship, mapped_column, Mapped
from models import BaseModel
class Service(BaseModel):
__tablename__ = 'services'
id = Column(Integer, autoincrement=True, primary_key=True, index=True)
id: Mapped[int] = mapped_column(Integer, autoincrement=True, primary_key=True, index=True)
name = Column(String, nullable=False, comment='Название услуги')
category_id = Column(Integer, ForeignKey('service_categories.id'), nullable=False, comment='ID категории услуги')