35 lines
852 B
Python
35 lines
852 B
Python
from datetime import datetime
|
|
from typing import List
|
|
from enum import Enum
|
|
|
|
from pydantic import BaseModel, Field
|
|
from beanie import Document
|
|
|
|
|
|
class ContractType(str, Enum):
|
|
individual = 'individual'
|
|
corporation = 'corporation'
|
|
|
|
|
|
class PartyTemplate(BaseModel):
|
|
entity_id: str
|
|
part: str
|
|
name: str
|
|
address: str
|
|
|
|
|
|
class ClauseTemplate(Document):
|
|
name: str
|
|
body: str
|
|
created_at: datetime = Field(default=datetime.utcnow(), nullable=False)
|
|
updated_at: datetime = Field(default_factory=datetime.utcnow, nullable=False)
|
|
|
|
|
|
class ContractTemplate(Document):
|
|
id: str
|
|
type: ContractType
|
|
parties: List[PartyTemplate]
|
|
clauses: List[ClauseTemplate]
|
|
created_at: datetime = Field(default=datetime.utcnow(), nullable=False)
|
|
updated_at: datetime = Field(default_factory=datetime.utcnow, nullable=False)
|