export type DocumentIframeView = 'numbered' | 'dynamic';

export type DocumentIframe = {
    public_id: string;
    name: string;
    view_type: DocumentIframeView;
    view_label: string;
    embed_url: string;
    created_at: string | null;
};

export type DocumentIframeViewOption = {
    value: DocumentIframeView;
    label: string;
    description: string;
};

export type DocumentEntryType =
    | 'folder'
    | 'file'
    | 'embed';

export type DocumentEntry = {
    public_id: string;
    type: DocumentEntryType;
    type_label: string;
    name: string;
    sort_order: number;

    original_name: string | null;
    mime_type: string | null;
    file_size: number | null;
    file_url: string | null;

    icon_type: 'heroicon' | 'image' | null;
    icon_name: string | null;
    icon_url: string | null;

    embed_code: string | null;
};

export type DocumentMenuIconOption = {
    value: string;
    label: string;
};

export type DocumentFolder = {
    public_id: string;
    name: string;
};

export type DocumentFolderBreadcrumb = {
    public_id: string;
    name: string;
};

export type DirectoryCapabilities = {
    can_create_folder: boolean;
    can_upload_file: boolean;
    can_create_embed: boolean;
};

export type PaginatedData<T> = {
    data: T[];
    current_page: number;
    last_page: number;
    per_page: number;
    total: number;
    from: number | null;
    to: number | null;
    prev_page_url: string | null;
    next_page_url: string | null;
};