from pydantic import Field from typing import List from firm.template.models import ContractTemplate, ProvisionTemplate, PartyTemplate, ProvisionTemplateReference, DictionaryEntry from firm.core.schemas import Writer, Reader from firm.core.models import RichtextMultiline, RichtextSingleline class ContractTemplateRead(Reader, ContractTemplate): pass class ContractTemplateCreate(Writer): name: str = Field(title="Nom") title: str = Field(title="Titre") parties: List[PartyTemplate] = Field( default=[], props={"items_per_row": "2"}, title="Parties") provisions: List[ProvisionTemplateReference] = Field( default=[], props={"items_per_row": "1", "numbered": True}, title="Clauses" ) variables: List[DictionaryEntry] = Field( default=[], props={"display": "dictionary", "required": False}, title="Variables" ) class Config: title = 'Template de Contrat' class ContractTemplateUpdate(ContractTemplateCreate): pass class ProvisionTemplateRead(Reader, ProvisionTemplate): pass class ProvisionTemplateCreate(Writer): name: str = Field(title="Nom") title: str = RichtextSingleline(title="Titre") body: str = RichtextMultiline(title="Corps") class Config: title = 'Template de Clause' class ProvisionTemplateUpdate(ProvisionTemplateCreate): pass