"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
from .channelpreferencedto import ChannelPreferenceDto, ChannelPreferenceDtoTypedDict
from .workflowpreferencedto import WorkflowPreferenceDto, WorkflowPreferenceDtoTypedDict
from novu_py.types import BaseModel
from typing import Dict
from typing_extensions import TypedDict


AllTypedDict = WorkflowPreferenceDtoTypedDict
r"""A preference for the workflow. The values specified here will be used if no preference is specified for a channel."""


All = WorkflowPreferenceDto
r"""A preference for the workflow. The values specified here will be used if no preference is specified for a channel."""


class WorkflowPreferencesDtoTypedDict(TypedDict):
    all: AllTypedDict
    r"""A preference for the workflow. The values specified here will be used if no preference is specified for a channel."""
    channels: Dict[str, ChannelPreferenceDtoTypedDict]
    r"""Preferences for different communication channels"""


class WorkflowPreferencesDto(BaseModel):
    all: All
    r"""A preference for the workflow. The values specified here will be used if no preference is specified for a channel."""

    channels: Dict[str, ChannelPreferenceDto]
    r"""Preferences for different communication channels"""
