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

from __future__ import annotations
from enum import Enum
from novu_py.types import BaseModel
import pydantic
from typing import List, Optional
from typing_extensions import Annotated, NotRequired, TypedDict


class TranslationGroupDtoResourceType(str, Enum):
    r"""Resource type"""

    WORKFLOW = "workflow"
    LAYOUT = "layout"


class TranslationGroupDtoTypedDict(TypedDict):
    resource_id: str
    r"""Resource identifier (slugified ID)"""
    resource_type: TranslationGroupDtoResourceType
    r"""Resource type"""
    resource_name: str
    r"""Resource name (e.g., workflow name)"""
    locales: List[str]
    r"""Array of available locales for this resource"""
    created_at: str
    r"""Creation timestamp"""
    updated_at: str
    r"""Last update timestamp"""
    outdated_locales: NotRequired[List[str]]
    r"""Locales that are outdated compared to the default locale (only present when there are outdated locales)"""


class TranslationGroupDto(BaseModel):
    resource_id: Annotated[str, pydantic.Field(alias="resourceId")]
    r"""Resource identifier (slugified ID)"""

    resource_type: Annotated[
        TranslationGroupDtoResourceType, pydantic.Field(alias="resourceType")
    ]
    r"""Resource type"""

    resource_name: Annotated[str, pydantic.Field(alias="resourceName")]
    r"""Resource name (e.g., workflow name)"""

    locales: List[str]
    r"""Array of available locales for this resource"""

    created_at: Annotated[str, pydantic.Field(alias="createdAt")]
    r"""Creation timestamp"""

    updated_at: Annotated[str, pydantic.Field(alias="updatedAt")]
    r"""Last update timestamp"""

    outdated_locales: Annotated[
        Optional[List[str]], pydantic.Field(alias="outdatedLocales")
    ] = None
    r"""Locales that are outdated compared to the default locale (only present when there are outdated locales)"""
