from datetime import datetime from pydantic import BaseModel, Field, computed_field class GenericEntry(BaseModel): name: str custom_name: str | None = None published: datetime | None = None class Counts(BaseModel): active: int inactive: int class GenericList(BaseModel): active: list[GenericEntry] = Field(default_factory=list) inactive: list[GenericEntry] = Field(default_factory=list) @computed_field @property def counts(self) -> Counts: return Counts(active=len(self.active),inactive=len(self.inactive))