from beanie import PydanticObjectId from pydantic import Field, BaseModel from pymongo import IndexModel from hub import CrudDocument class Firm(CrudDocument): name: str = Field() instance: str = Field() owner: PydanticObjectId = Field() def compute_label(self) -> str: return self.name class Settings: indexes = [ IndexModel(["name", "instance"], unique=True), ] class FirmRead(BaseModel): instance: str = Field() name: str = Field() class FirmCreate(FirmRead): pass class FirmUpdate(FirmRead): pass