35 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from sqlalchemy import Column, Integer, String, DateTime, ForeignKey, BigInteger
 | 
						|
from sqlalchemy.orm import relationship
 | 
						|
 | 
						|
from models import BaseModel
 | 
						|
 | 
						|
 | 
						|
class Client(BaseModel):
 | 
						|
    __tablename__ = 'clients'
 | 
						|
    id = Column(Integer, autoincrement=True, primary_key=True, index=True)
 | 
						|
    name = Column(String, nullable=False, unique=True, comment='Название клиента')
 | 
						|
    created_at = Column(DateTime, nullable=False, comment='Дата создания')
 | 
						|
 | 
						|
    products = relationship('Product', back_populates='client')
 | 
						|
 | 
						|
    details = relationship('ClientDetails', uselist=False, back_populates='client', cascade='all, delete')
 | 
						|
 | 
						|
 | 
						|
class ClientDetails(BaseModel):
 | 
						|
    __tablename__ = 'client_details'
 | 
						|
 | 
						|
    id = Column(Integer, autoincrement=True, primary_key=True, index=True)
 | 
						|
 | 
						|
    client_id = Column(Integer, ForeignKey('clients.id'), unique=True, nullable=False, comment='ID клиента')
 | 
						|
    client = relationship('Client', back_populates='details', cascade='all, delete', uselist=False)
 | 
						|
 | 
						|
    telegram = Column(String)
 | 
						|
    phone_number = Column(String)
 | 
						|
    inn = Column(String)
 | 
						|
    email = Column(String)
 | 
						|
 | 
						|
    last_modified_at = Column(DateTime, nullable=False)
 | 
						|
 | 
						|
    modified_by_user_id = Column(Integer, ForeignKey('users.id'), nullable=False)
 | 
						|
    modified_by_user = relationship('User')
 |