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