# #region DashboardModels [C:3] [TYPE Module] [SEMANTICS pydantic, dashboard, model, schema, selection, dashboard-metadata]
# @BRIEF Defines data models for dashboard metadata and selection.
# @LAYER Domain
# @RELATION CALLED_BY -> [MigrationApi]


from pydantic import BaseModel


# #region DashboardMetadata [C:1] [TYPE Class]
# @BRIEF Represents a dashboard available for migration.
class DashboardMetadata(BaseModel):
    id: int
    title: str
    last_modified: str
    status: str
# #endregion DashboardMetadata

# #region DashboardSelection [C:1] [TYPE Class]
# @BRIEF Represents the user's selection of dashboards to migrate.
class DashboardSelection(BaseModel):
    selected_ids: list[int]
    source_env_id: str
    target_env_id: str
    replace_db_config: bool = False
    fix_cross_filters: bool = True
# #endregion DashboardSelection

# #endregion DashboardModels
