import type { DefineComponent } from "vue"; 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; }>; data: Array<{ title: string; items: Array; }>; 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; } 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; }; // menuStore // export type CountryList = { // call_prefix: string; // currency_iso_code: string; // iso_code: string; // name: string; // } export type Countries = { call_prefix: string; currency_iso_code: string; iso_code: string; name: string; }; export type PartnersList = { country_iso: string; country_name: string; total: number; }; export type Currencies = { iso_code: string; name: string; UpdatedAt: string; iso_code_num: number; precision: number; sign: string; active: boolean; suffix: boolean; }; export type FeatureValue = { parent: number; products_with_value: number; value: string; value_id: number; }; export type Feature = { feature: string; feature_id: number; feature_values: FeatureValue[]; products_with_feature: number; }; export type ProductType = { applied_tax_rate: number; cover_picture_uuid: string; description: string; formatted_price: string; id: number; in_stock: number; is_sale_active: boolean; link_rewrite: string; name: string; price: number; tax_name: string; cart_item_id?: number; product_id?: number; }; export interface Country { iso_code: string; currency_iso_code: string; call_prefix: string; need_postcode: boolean; postcode_format: string; is_default: boolean; active: boolean; name: string; } export interface Currency { iso_code: string; name: string; UpdatedAt: string; iso_code_num: number; precision: number; sign: string; active: boolean; suffix: boolean; } export interface UserCart { id: number; checkout_in_progress: boolean; total_value: number; currency_iso: string; } export interface GenericResponse { data: Data; message?: string; status: number; } export interface GenericResponseItems { data: { items: Data; items_count: number }; message?: string; status: number; } export interface GenericResponseChildren { data: { children: Data; items_count: number }; message?: string; status: number; } export type { InvestmentPiece, PlanPrediction, PeriodToFirstPiece, } from "./planPrediction"; export type { Product } from "./product";