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 import Column, Integer, String, DateTime, ForeignKey
 | 
				
			||||||
from sqlalchemy.orm import relationship
 | 
					from sqlalchemy.orm import relationship, Mapped, mapped_column
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from models import BaseModel
 | 
					from models import BaseModel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -23,7 +25,8 @@ class Client(BaseModel):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    barcode_template_id = Column(Integer, ForeignKey('barcode_templates.id'), nullable=True)
 | 
					    barcode_template_id = Column(Integer, ForeignKey('barcode_templates.id'), nullable=True)
 | 
				
			||||||
    barcode_template = relationship('BarcodeTemplate', lazy='selectin')
 | 
					    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):
 | 
					class ClientDetails(BaseModel):
 | 
				
			||||||
@@ -44,7 +47,6 @@ class ClientDetails(BaseModel):
 | 
				
			|||||||
    modified_by_user_id = Column(Integer, ForeignKey('users.id'), nullable=False)
 | 
					    modified_by_user_id = Column(Integer, ForeignKey('users.id'), nullable=False)
 | 
				
			||||||
    modified_by_user = relationship('User')
 | 
					    modified_by_user = relationship('User')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
# class ClientContact(BaseModel):
 | 
					# class ClientContact(BaseModel):
 | 
				
			||||||
#     __tablename__ = 'client_contact'
 | 
					#     __tablename__ = 'client_contact'
 | 
				
			||||||
#     id: Mapped[int] = mapped_column(primary_key=True)
 | 
					#     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
 | 
					from pydantic import field_validator
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -23,6 +23,7 @@ class ClientSchema(BaseSchema):
 | 
				
			|||||||
    name: str
 | 
					    name: str
 | 
				
			||||||
    company_name: str
 | 
					    company_name: str
 | 
				
			||||||
    barcode_template: BarcodeTemplateSchema | None = None
 | 
					    barcode_template: BarcodeTemplateSchema | None = None
 | 
				
			||||||
 | 
					    comment: Optional[str] = None
 | 
				
			||||||
    details: ClientDetailsSchema | None = None
 | 
					    details: ClientDetailsSchema | None = None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -80,7 +80,19 @@ class ClientService(BaseService):
 | 
				
			|||||||
            client = await self.get_by_name(request.data.name)
 | 
					            client = await self.get_by_name(request.data.name)
 | 
				
			||||||
            if client:
 | 
					            if client:
 | 
				
			||||||
                return ClientCreateResponse(ok=False, message='Клиент с таким именем уже существует')
 | 
					                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()
 | 
					            await self.session.commit()
 | 
				
			||||||
            return ClientCreateResponse(ok=True, message='Client created')
 | 
					            return ClientCreateResponse(ok=True, message='Client created')
 | 
				
			||||||
        except Exception as e:
 | 
					        except Exception as e:
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user