feat: address now is telegram
This commit is contained in:
		@@ -23,7 +23,7 @@ class ClientDetails(BaseModel):
 | 
			
		||||
    client_id = Column(Integer, ForeignKey('clients.id'), unique=True, nullable=False, comment='ID клиента')
 | 
			
		||||
    client = relationship('Client', back_populates='details', cascade='all, delete', uselist=False)
 | 
			
		||||
 | 
			
		||||
    address = Column(String)
 | 
			
		||||
    telegram = Column(String)
 | 
			
		||||
    phone_number = Column(String)
 | 
			
		||||
    inn = Column(String)
 | 
			
		||||
    email = Column(String)
 | 
			
		||||
 
 | 
			
		||||
@@ -17,7 +17,6 @@ class Product(BaseModel):
 | 
			
		||||
    client_id = Column(Integer, ForeignKey('clients.id'), nullable=False, comment='ID сделки')
 | 
			
		||||
    client = relationship('Client', back_populates='products')
 | 
			
		||||
    barcodes = relationship('ProductBarcode', back_populates='product', cascade="all, delete-orphan")
 | 
			
		||||
    my_column = Column(Integer, sequence)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class ProductBarcode(BaseModel):
 | 
			
		||||
 
 | 
			
		||||
@@ -7,12 +7,12 @@ from schemas.base import CustomModelCamel, OkMessageSchema
 | 
			
		||||
 | 
			
		||||
# region Entities
 | 
			
		||||
class ClientDetailsSchema(CustomModelCamel):
 | 
			
		||||
    address: str | None = None
 | 
			
		||||
    telegram: str | None = None
 | 
			
		||||
    phone_number: str | None = None
 | 
			
		||||
    inn: str | None = None
 | 
			
		||||
    email: str | None = None
 | 
			
		||||
 | 
			
		||||
    @field_validator("phone_number", "inn", "email", "address", mode="before")
 | 
			
		||||
    @field_validator("phone_number", "inn", "email", "telegram", mode="before")
 | 
			
		||||
    def empty_string_to_none(cls, v):
 | 
			
		||||
        return '' if v is None else v
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -83,7 +83,6 @@ class DealCreateRequest(CustomModelCamel):
 | 
			
		||||
class DealQuickCreateRequest(CustomModelCamel):
 | 
			
		||||
    name: str
 | 
			
		||||
    client_name: str
 | 
			
		||||
    client_address: str
 | 
			
		||||
    comment: str
 | 
			
		||||
    acceptance_date: datetime.datetime
 | 
			
		||||
 | 
			
		||||
@@ -150,8 +149,8 @@ class DealSummaryReorderRequest(CustomModelCamel):
 | 
			
		||||
    deal_id: int
 | 
			
		||||
    status: int
 | 
			
		||||
    index: int
 | 
			
		||||
    deadline: datetime.datetime
 | 
			
		||||
    comment: str
 | 
			
		||||
    deadline: datetime.datetime | None = None
 | 
			
		||||
    comment: str | None = None
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class DealDeleteRequest(CustomModelCamel):
 | 
			
		||||
 
 | 
			
		||||
@@ -83,12 +83,14 @@ class DealService(BaseService):
 | 
			
		||||
    async def quick_create(self, request: DealQuickCreateRequest, user: User) -> DealQuickCreateResponse:
 | 
			
		||||
        client_service = ClientService(self.session)
 | 
			
		||||
        client = await client_service.get_by_name(request.client_name)
 | 
			
		||||
 | 
			
		||||
        if not client:
 | 
			
		||||
            client = await client_service.create_client_raw(
 | 
			
		||||
                user,
 | 
			
		||||
                request.client_name,
 | 
			
		||||
                ClientDetailsSchema(address=request.client_address))
 | 
			
		||||
        await client_service.update_details(user, client, ClientDetailsSchema(address=request.client_address))
 | 
			
		||||
                ClientDetailsSchema()
 | 
			
		||||
            )
 | 
			
		||||
 | 
			
		||||
        rank = await self._get_rank_for_deal(DealStatus.CREATED)
 | 
			
		||||
        deal = Deal(
 | 
			
		||||
            name=request.name,
 | 
			
		||||
@@ -221,8 +223,12 @@ class DealService(BaseService):
 | 
			
		||||
        is_first = request.index == 0
 | 
			
		||||
        stmt = (
 | 
			
		||||
            select(Deal)
 | 
			
		||||
            .where(Deal.current_status == request.status,
 | 
			
		||||
                   Deal.id != request.deal_id)
 | 
			
		||||
            .where(
 | 
			
		||||
                Deal.current_status == request.status,
 | 
			
		||||
                Deal.id != request.deal_id,
 | 
			
		||||
                Deal.is_deleted == False,
 | 
			
		||||
                Deal.is_completed == False
 | 
			
		||||
            )
 | 
			
		||||
            .order_by(Deal.lexorank)
 | 
			
		||||
            .offset(max([request.index - 2, 0]))
 | 
			
		||||
            .limit(2 if not is_first else 1)
 | 
			
		||||
@@ -232,10 +238,6 @@ class DealService(BaseService):
 | 
			
		||||
        boundaries = query.scalars().all()
 | 
			
		||||
        top_boundary: Union[Deal, None] = boundaries[0] if not is_first else None
 | 
			
		||||
        bottom_boundary: Union[Deal, None] = boundaries[1] if len(boundaries) == 2 else None
 | 
			
		||||
        if top_boundary:
 | 
			
		||||
            print(top_boundary.name)
 | 
			
		||||
        if bottom_boundary:
 | 
			
		||||
            print(bottom_boundary.name)
 | 
			
		||||
        # working when between two elements
 | 
			
		||||
        if top_boundary and bottom_boundary:
 | 
			
		||||
            top_lexorank = lexorank.parse(top_boundary.lexorank)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user