diff --git a/api/rpk-api/firm/contract/models.py b/api/rpk-api/firm/contract/models.py index 43cdc48..aa9967c 100644 --- a/api/rpk-api/firm/contract/models.py +++ b/api/rpk-api/firm/contract/models.py @@ -27,11 +27,11 @@ class ContractDraftStatus(str, Enum): class DraftParty(BaseModel): - entity_id: PydanticObjectId = ForeignKey("entities", "Entity", default="", title="Partie") - entity: SkipJsonSchema[Entity] = Field(default=None, exclude=True, ) + entity_id: Optional[PydanticObjectId] = ForeignKey("entities", "Entity", default=None, title="Partie") part: str = Field(title="Rôle") - representative_id: PydanticObjectId = ForeignKey("entities", "Entity", default="", title="Représentant") + representative_id: Optional[PydanticObjectId] = ForeignKey("entities", "Entity", default=None, title="Représentant") + entity: SkipJsonSchema[Entity] = Field(default=None, exclude=True, ) class Config: title = 'Partie' @@ -64,7 +64,7 @@ class ContractProvisionTemplateReference(BaseModel): "ProvisionTemplate", displayed_fields=['title', 'body'], props={"parametrized": True}, - default="", + default=None, title="Template de clause" ) diff --git a/api/rpk-api/firm/entity/models.py b/api/rpk-api/firm/entity/models.py index e5abbf3..61066a9 100644 --- a/api/rpk-api/firm/entity/models.py +++ b/api/rpk-api/firm/entity/models.py @@ -4,7 +4,7 @@ from typing import List, Literal, Optional from pydantic import Field, BaseModel from beanie import Indexed, PydanticObjectId -from firm.core.models import CrudDocument +from firm.core.models import CrudDocument, ForeignKey from firm.core.filter import Filter, FilterSchema @@ -39,16 +39,7 @@ class Individual(EntityType): class Employee(BaseModel): position: Indexed(str) = Field(title='Poste') - entity_id: PydanticObjectId = Field( - foreignKey={ - "reference": { - "resource": "entities", - "schema": "Entity", - "condition": "entity_data.type=individual" - } - }, - title='Employé' - ) + entity_id: PydanticObjectId = ForeignKey("entities", "Entity", title='Employé') class Config: title = 'Fiche Employé' diff --git a/api/rpk-api/firm/template/models.py b/api/rpk-api/firm/template/models.py index 5cb03a6..7e4c781 100644 --- a/api/rpk-api/firm/template/models.py +++ b/api/rpk-api/firm/template/models.py @@ -1,35 +1,17 @@ -from typing import List +from typing import List, Optional from html import unescape from beanie import PydanticObjectId from pydantic import BaseModel, Field -from firm.core.models import CrudDocument, RichtextMultiline, RichtextSingleline, DictionaryEntry +from firm.core.models import CrudDocument, RichtextMultiline, RichtextSingleline, DictionaryEntry, ForeignKey from firm.core.filter import Filter, FilterSchema class PartyTemplate(BaseModel): - entity_id: PydanticObjectId = Field( - foreignKey={ - "reference": { - "resource": "entities", - "schema": "Entity", - } - }, - default="", - title="Partie" - ) + entity_id: Optional[PydanticObjectId] = ForeignKey("entities", "Entity", default=None, title="Partie") part: str = Field(title="Rôle") - representative_id: PydanticObjectId = Field( - foreignKey={ - "reference": { - "resource": "entities", - "schema": "Entity", - } - }, - default="", - title="Représentant" - ) + representative_id: Optional[PydanticObjectId] = ForeignKey("entities", "Entity", default=None, title="Représentant") class Config: title = 'Partie' @@ -62,14 +44,10 @@ class ProvisionTemplate(CrudDocument): class ProvisionTemplateReference(BaseModel): - provision_template_id: PydanticObjectId = Field( - foreignKey={ - "reference": { - "resource": "templates/provisions", - "schema": "ProvisionTemplate", - "displayedFields": ['title', 'body'] - }, - }, + provision_template_id: PydanticObjectId = ForeignKey( + "templates/provisions", + "TemplateProvision", + ['title', 'body'], props={"parametrized": True}, title="Template de clause" )