Files
cht-lawfirm/back/app/contract/models.py
2023-01-09 13:03:16 +01:00

41 lines
845 B
Python

from datetime import datetime
from typing import List
from enum import Enum
from pydantic import BaseModel, Field
from beanie import Document
from ..entity.models import Entity
class ContractType(str, Enum):
employment = 'employment'
location = 'location'
class ContractStatus(str, Enum):
new = 'new'
signed = 'signed'
in_effect = 'in_effect'
executed = 'executed'
class Party(BaseModel):
entity: Entity
part: str
class Clause(BaseModel):
name: str
body: str
class Contract(Document):
_id: str
type: ContractType
parties: List[Party]
clauses: List[Clause]
status: ContractStatus = Field(default=ContractStatus.new)
created_at: datetime = Field(default=datetime.utcnow(), nullable=False)
updated_at: datetime = Field(default_factory=datetime.utcnow, nullable=False)