  # #region SettingsSchemas [C:3] [TYPE Module] [SEMANTICS pydantic, schema, validate, notification-channel]
  # @defgroup Schemas Module group.
  # @BRIEF Pydantic schemas for application settings and automation policies.
  # @LAYER Domain
  # @RELATION DEPENDS_ON -> [EXT:Library:pydantic]
  
> from datetime import datetime, time
  
> from pydantic import BaseModel, ConfigDict, Field
  
  
  # #region NotificationChannel [TYPE Class]
  # @defgroup Schemas Module group.
  # @BRIEF Structured notification channel definition for policy-level custom routing.
> class NotificationChannel(BaseModel):
>     type: str = Field(
>         ..., description="Notification channel type (e.g., SLACK, SMTP, TELEGRAM)"
>     )
>     target: str = Field(
>         ..., description="Notification destination (e.g., #alerts, chat id, email)"
>     )
  
  
  # #endregion NotificationChannel
  
  
  # #region ValidationPolicyBase [TYPE Class]
  # @defgroup Schemas Module group.
  # @BRIEF Base schema for validation policy data.
> class ValidationPolicyBase(BaseModel):
>     name: str = Field(..., description="Name of the policy")
>     environment_id: str = Field(..., description="Target Superset environment ID")
>     is_active: bool = Field(True, description="Whether the policy is currently active")
>     dashboard_ids: list[str] = Field(
>         ..., description="List of dashboard IDs to validate"
>     )
>     schedule_days: list[int] = Field(
>         ..., description="Days of the week (0-6, 0=Sunday) to run"
>     )
>     window_start: time = Field(..., description="Start of the execution window")
>     window_end: time = Field(..., description="End of the execution window")
>     notify_owners: bool = Field(
>         True, description="Whether to notify dashboard owners on failure"
>     )
>     custom_channels: list[NotificationChannel] | None = Field(
>         None,
>         description="List of additional structured notification channels",
>     )
>     alert_condition: str = Field(
>         "FAIL_ONLY",
>         description="Condition to trigger alerts: FAIL_ONLY, WARN_AND_FAIL, ALWAYS",
>     )
  
  
  # #endregion ValidationPolicyBase
  
  
  # #region ValidationPolicyCreate [TYPE Class]
  # @defgroup Schemas Module group.
  # @BRIEF Schema for creating a new validation policy.
> class ValidationPolicyCreate(ValidationPolicyBase):
>     pass
  
  
  # #endregion ValidationPolicyCreate
  
  
  # #region ValidationPolicyUpdate [TYPE Class]
  # @defgroup Schemas Module group.
  # @BRIEF Schema for updating an existing validation policy.
> class ValidationPolicyUpdate(BaseModel):
>     name: str | None = None
>     environment_id: str | None = None
>     is_active: bool | None = None
>     dashboard_ids: list[str] | None = None
>     schedule_days: list[int] | None = None
>     window_start: time | None = None
>     window_end: time | None = None
>     notify_owners: bool | None = None
>     custom_channels: list[NotificationChannel] | None = None
>     alert_condition: str | None = None
  
  
  # #endregion ValidationPolicyUpdate
  
  
  # #region ValidationPolicyResponse [TYPE Class]
  # @defgroup Schemas Module group.
  # @BRIEF Schema for validation policy response data.
> class ValidationPolicyResponse(ValidationPolicyBase):
>     id: str
>     created_at: datetime
>     updated_at: datetime
  
>     model_config = ConfigDict(from_attributes=True)
  
  
  # #endregion ValidationPolicyResponse
  
  
  # #region TranslationScheduleItem [C:1] [TYPE Class]
  # @BRIEF Response schema for a translation schedule item with joined job name.
> class TranslationScheduleItem(BaseModel):
>     schedule_id: str
>     job_id: str
>     job_name: str | None = None
>     cron_expression: str
>     timezone: str
>     is_active: bool
>     execution_mode: str = "full"
>     last_run_at: datetime | None = None
>     next_run_at: datetime | None = None
>     created_by: str | None = None
>     created_at: datetime | None = None
  
>     model_config = ConfigDict(from_attributes=True)
  
  
  # #endregion TranslationScheduleItem
  
  # #endregion SettingsSchemas
