feat: add comment, creating refactor

This commit is contained in:
2024-10-15 07:41:24 +03:00
parent ab5fc94e1b
commit 0407177085
3 changed files with 20 additions and 5 deletions

View File

@@ -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)

View File

@@ -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

View File

@@ -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: