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

from __future__ import annotations
from .channelpreference import ChannelPreference, ChannelPreferenceTypedDict
from novu_py.types import BaseModel
from typing import Optional
from typing_extensions import NotRequired, TypedDict


class UpdateSubscriberPreferenceRequestDtoTypedDict(TypedDict):
    channel: NotRequired[ChannelPreferenceTypedDict]
    r"""Optional preferences for each channel type in the assigned workflow."""
    enabled: NotRequired[bool]
    r"""Indicates whether the workflow is fully enabled for all channels for the subscriber."""


class UpdateSubscriberPreferenceRequestDto(BaseModel):
    channel: Optional[ChannelPreference] = None
    r"""Optional preferences for each channel type in the assigned workflow."""

    enabled: Optional[bool] = None
    r"""Indicates whether the workflow is fully enabled for all channels for the subscriber."""
