37 lines
767 B
Python
37 lines
767 B
Python
|
|
from typing import List
|
|
|
|
from pydantic import Field
|
|
|
|
from .models import ContractDraft, DraftProvision, Party
|
|
|
|
from ..entity.models import Entity
|
|
from ..core.schemas import Writer
|
|
from ..core.models import DictionaryEntry
|
|
|
|
|
|
class ContractDraftRead(ContractDraft):
|
|
pass
|
|
|
|
|
|
class ContractDraftCreate(Writer):
|
|
name: str
|
|
title: str
|
|
parties: List[Party]
|
|
provisions: List[DraftProvision]
|
|
variables: List[DictionaryEntry] = Field(
|
|
default=[],
|
|
format="dictionary",
|
|
)
|
|
|
|
async def validate_foreign_key(self):
|
|
return
|
|
for p in self.parties:
|
|
p.entity = await Entity.get(p.entity)
|
|
if p.entity is None:
|
|
raise ValueError
|
|
|
|
|
|
class ContractDraftUpdate(ContractDraftCreate):
|
|
pass
|