from datetime import datetime from beanie import Document from pydantic import Field, validator class CrudDocument(Document): _id: str created_at: datetime = Field(default=datetime.utcnow(), nullable=False) updated_at: datetime = Field(default_factory=datetime.utcnow, nullable=False) @validator("label", always=True, check_fields=False) def generate_label(cls, v, values, **kwargs): return v class Settings: fulltext_search = [] def text_area(*args, **kwargs): kwargs['widget'] = { "formlyConfig": { "type": "textarea", "props": { "placeholder": "Leaving this field empty will cause formData property to be `null`", "rows": kwargs['size'] if 'size' in kwargs else 10 } } } return Field(*args, **kwargs)