export interface ListResponse { page: number; perPage: number; totalItems: number; totalPages: number; } export interface PBMenuItem { page: number; page_name: string; perPage: number; totalItems: number; totalPages: number; is_root: boolean; is_default: boolean; id_page: string; id: string; id_parent: string; url: string; name: string; link_rewrite: string; active: boolean; collectionId: string; collectionName: string; created: string; link_title: string; meta_description: string; meta_title: string; position_id: number; updated: string; } export interface PBFooterItem { id: string; id_lang: string; address: string; phone: string; email: string; contact_info: Array<{ field: keyof PBFooterItem; title: string; }>; company_info: Array<{ data: string; title: string; }>; } export interface PBPageItem { collectionId: string; collectionName: string; component_name: string; id: string; image_collection: string; page_created: string; page_id: string; page_name: string; page_section_id_position: number; page_updated: string; section_id: string; section_img: string[]; section_lang_created: string; section_lang_data: SectionLangData; section_lang_id_lang: string; section_name: string; } import type { DefineComponent } from "vue"; export interface SectionLangData { title: string; description: string; button: string; button_call: string; } export interface UIMenuItem extends PBMenuItem { children?: UIMenuItem[]; } export interface MenuListResponse extends ListResponse { items: PBMenuItem[]; } export interface FooterListResponse extends ListResponse { items: PBFooterItem[]; } export type componentsListType = { name: string; component: PBPageItem; componentInstance: DefineComponent; data: SectionLangData; };