feat: add comment, creating refactor
This commit is contained in:
		@@ -1,5 +1,7 @@
 | 
			
		||||
from typing import Optional
 | 
			
		||||
 | 
			
		||||
from sqlalchemy import Column, Integer, String, DateTime, ForeignKey
 | 
			
		||||
from sqlalchemy.orm import relationship
 | 
			
		||||
from sqlalchemy.orm import relationship, Mapped, mapped_column
 | 
			
		||||
 | 
			
		||||
from models import BaseModel
 | 
			
		||||
 | 
			
		||||
@@ -23,7 +25,8 @@ class Client(BaseModel):
 | 
			
		||||
 | 
			
		||||
    barcode_template_id = Column(Integer, ForeignKey('barcode_templates.id'), nullable=True)
 | 
			
		||||
    barcode_template = relationship('BarcodeTemplate', lazy='selectin')
 | 
			
		||||
    # users = relationship('ClientUser', back_populates='client', cascade='all, delete')
 | 
			
		||||
 | 
			
		||||
    comment: Mapped[Optional[str]] = mapped_column(nullable=True, server_default=None, comment='Комментарий')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class ClientDetails(BaseModel):
 | 
			
		||||
@@ -44,7 +47,6 @@ class ClientDetails(BaseModel):
 | 
			
		||||
    modified_by_user_id = Column(Integer, ForeignKey('users.id'), nullable=False)
 | 
			
		||||
    modified_by_user = relationship('User')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# class ClientContact(BaseModel):
 | 
			
		||||
#     __tablename__ = 'client_contact'
 | 
			
		||||
#     id: Mapped[int] = mapped_column(primary_key=True)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
from typing import List
 | 
			
		||||
from typing import List, Optional
 | 
			
		||||
 | 
			
		||||
from pydantic import field_validator
 | 
			
		||||
 | 
			
		||||
@@ -23,6 +23,7 @@ class ClientSchema(BaseSchema):
 | 
			
		||||
    name: str
 | 
			
		||||
    company_name: str
 | 
			
		||||
    barcode_template: BarcodeTemplateSchema | None = None
 | 
			
		||||
    comment: Optional[str] = None
 | 
			
		||||
    details: ClientDetailsSchema | None = None
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -80,7 +80,19 @@ class ClientService(BaseService):
 | 
			
		||||
            client = await self.get_by_name(request.data.name)
 | 
			
		||||
            if client:
 | 
			
		||||
                return ClientCreateResponse(ok=False, message='Клиент с таким именем уже существует')
 | 
			
		||||
            await self.create_client_raw(user, request.data.name, request.data.details)
 | 
			
		||||
            client_dict = request.data.dict()
 | 
			
		||||
            del client_dict['details']
 | 
			
		||||
            del client_dict['barcode_template']
 | 
			
		||||
            if request.data.barcode_template:
 | 
			
		||||
                client_dict['barcode_template_id'] = request.data.barcode_template.id
 | 
			
		||||
            client_dict['created_at'] = datetime.datetime.now()
 | 
			
		||||
 | 
			
		||||
            client = Client(**client_dict)
 | 
			
		||||
            self.session.add(client)
 | 
			
		||||
            await self.session.flush()
 | 
			
		||||
            await self.create_details(user, client, request.data.details)
 | 
			
		||||
 | 
			
		||||
            # await self.create_client_raw(user, request.data.name, request.data.details)
 | 
			
		||||
            await self.session.commit()
 | 
			
		||||
            return ClientCreateResponse(ok=True, message='Client created')
 | 
			
		||||
        except Exception as e:
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user