"""Schemas for ECS task management.""" from pydantic import BaseModel from pydantic import Field class DbtRefreshRequest(BaseModel): """Request schema for triggering dbt refresh tasks.""" full_refresh: bool = Field( default=True, description='Whether or not to run a full refresh' ) select_models: str = Field( default='ledger_summary_dbt account_statement_periods_dbt combined_expenses_dbt combined_expenses_by_artist_dbt expenses_by_subaccount_dbt combined_advances_dbt combined_adjustments_dbt combined_adjustments_by_type_dbt combined_payments_dbt', # noqa: E501 description='Specify which models should be run (--select)' ) exclude_models: str = Field( default='abacus_fact_sales_unified_dbt workstation_fact_sales_unified_dbt', description='Specify which models should be excluded (--exclude)' ) class DbtRefreshResponse(BaseModel): """Response schema for dbt refresh task trigger via Step Functions.""" execution_arn: str = Field( description='ARN of the triggered Step Function execution' ) start_date: str = Field( description='ISO format timestamp of when the execution started' ) status: str = Field( default='RUNNING', description='Current status of the Step Function execution' ) message: str = Field( description='Message about the task trigger including parameter details' )