interface APIParams {
    offset?: number
    limit?: number
    sort?: string | "ASC" | "DESC"
    filter?: {
        [key: string]: any
    }
    count?: 1
}

interface CollectionEntry {
    id?: string
    insertTime?: string
    updateTime?: string
    [key: string]: any
}

interface Content {
    id: string
    public: boolean
    path: string
    locale: string
    type: string[]
    tags?: string[]
    pageBuilder?: PageBuilderRow[]
    meta: {
        [key: string]: any
    }
}

interface PageBuilderRow {
    publish: boolean
    columns: {
        column1: PageBuilderColumn
        column2: PageBuilderColumn
        column3: PageBuilderColumn
        column4: PageBuilderColumn
    }
}

interface PageBuilderColumn {
    width: string
    html: string
    module: string
}

interface GeneralInfo {
    id: string
    public: boolean
    meta: {
        metaTitle: string
        metaDescription: string
        metaTagRobots: string
        metaKeywords: string
    }
    person?: {
        salutation: string
        firstname: string
        lastname: string
        additional: string
        street: string
        postcode: number
        city: string
        tel: string
        fax: string
        mobile: string
        email: string
    }
    company?: {
        companyName: string
        companyWebUrl: string
        facebookUrl: string
        instagramUrl: string
        twitterUrl: string
        companyAddresses: {
            street: string
            houseNumber: string
            postcode: number
            city: string
            tel: string
            fax: string
            email: string
        }[]
    }
    media: {
        favicon: File
        brand: File
        mediaFiles: {
            title: string
            alternateText: string
            id: string
            file: File
        }[]
    }
    copyrightText: string
    insertTime: string
    updateTime: string
}

interface File {
    lastModified?: number
    path: string
    size?: string
    src: string
    type: string
}

interface Navigation {
    id: string
    ident: string
    locale: string
    items: NavigationItem[]
    insertTime: string
    updateTime: string
}

interface NavigationItem {
    settings: {
        title: string
        page: string
        items: NavigationItem[]
        url: {
            url: string
            target: string
            hidden: boolean
        }
    }
}

interface Locale {
    key: string
    title?: string
}

// interface Gallery {
//     id: string
//     title: string
//     variant: string
//     items: {
//         file: File
//         title: string
//         descrition: string
//         alt: string
//     }[]
// }
