# src/veedb/apitypes/__init__.py
from .common import (
    VNDBID,
    ReleaseDate,
    ImageCommon,
    Extlink,
    LanguageEnum,
    PlatformEnum,
    StaffRoleEnum,
    TagCategoryEnum,
    ProducerTypeEnum,
    DevStatusEnum,
    QueryRequest,
    QueryResponse,
)
from .entities import (
    VN,
    VNTitle,
    VNImageInfo,
    VNRelation,
    VNTagLink,
    VNEdition,
    VNStaffLink,
    VNVoiceActor,  # VNScreenshot removed
    Release,
    ReleaseLanguageSpecific,
    ReleaseMedia,
    ReleaseVNLink,
    ReleaseProducerLink,
    ReleaseImage,
    Producer,
    Character,
    CharacterImageInfo,
    CharacterVNLink,
    CharacterTraitLink,
    BloodTypeEnum,
    SexEnum,
    GenderEnum,
    CharacterRoleEnum,
    Staff,
    StaffAlias,
    StaffGenderEnum,
    Tag,
    Trait,
    Quote,
    User,
    AuthInfo,
    UserStats,
    UlistItem,
    UlistLabel,
    UlistLabelInfo,
    UlistReleaseInfo,
)
from .requests import UlistUpdatePayload, RlistUpdatePayload

__all__ = [
    # Common base types
    "VNDBID",
    "ReleaseDate",
    "ImageCommon",
    "Extlink",
    "LanguageEnum",
    "PlatformEnum",
    "StaffRoleEnum",
    "TagCategoryEnum",
    "ProducerTypeEnum",
    "DevStatusEnum",
    "QueryRequest",
    "QueryResponse",
    # VN Entity and related
    "VN",
    "VNTitle",
    "VNImageInfo",
    "VNRelation",
    "VNTagLink",
    "VNEdition",
    "VNStaffLink",
    "VNVoiceActor",
    # Release Entity and related
    "Release",
    "ReleaseLanguageSpecific",
    "ReleaseMedia",
    "ReleaseVNLink",
    "ReleaseProducerLink",
    "ReleaseImage",
    # Producer Entity
    "Producer",
    # Character Entity and related
    "Character",
    "CharacterImageInfo",
    "CharacterVNLink",
    "CharacterTraitLink",
    "BloodTypeEnum",
    "SexEnum",
    "GenderEnum",
    "CharacterRoleEnum",
    # Staff Entity and related
    "Staff",
    "StaffAlias",
    "StaffGenderEnum",
    # Tag Entity
    "Tag",
    # Trait Entity
    "Trait",
    # Quote Entity
    "Quote",
    # User and Auth entities
    "User",
    "AuthInfo",
    "UserStats",
    # Ulist entities
    "UlistItem",
    "UlistLabel",
    "UlistLabelInfo",
    "UlistReleaseInfo",
    # Request Payloads
    "UlistUpdatePayload",
    "RlistUpdatePayload",
]
