from __future__ import annotations from pydantic import BaseModel, Field class NormalizedGroupSummary(BaseModel): name: str object_kind: str object_count: int class NormalizedProjectSummary(BaseModel): project_id: str | None = None source_path: str | None = None group_count: int = 0 object_count: int = 0 attribute_count: int = 0 tabular_section_count: int = 0 form_count: int = 0 command_count: int = 0 role_count: int = 0 rights_count: int = 0 access_profile_count: int = 0 access_group_count: int = 0 access_user_count: int = 0 access_assignment_count: int = 0 module_count: int = 0 layout_count: int = 0 movement_count: int = 0 extension_count: int = 0 extensions: list[str] = Field(default_factory=list) groups: list[NormalizedGroupSummary] = Field(default_factory=list)