from pydantic import BaseModel, Field, ConfigDict from datetime import datetime from bson import ObjectId class Environment(BaseModel): id: str | None = Field(None, alias="_id") character_id: str name: str = Field(..., min_length=1) description: str | None = None asset_ids: list[str] = Field(default_factory=list) created_at: datetime = Field(default_factory=datetime.utcnow) updated_at: datetime = Field(default_factory=datetime.utcnow) model_config = ConfigDict( populate_by_name=True, json_encoders={ObjectId: str}, arbitrary_types_allowed=True )