import { OrderStatus } from "../../interfaces/types";
export type AutoCompleteAddressApi = {
    description?: string;
    place_id?: string;
};
export type PaginationApi = {
    current?: number;
    first?: number;
    items_per_page?: number;
    last?: number;
    next?: number;
    prev?: number;
    total_items?: number;
};
export type SpecialtyApi = {
    name?: string;
    id?: number;
    thumbnail?: string;
    total_doctor?: number;
    slug?: string;
};
export type PriceInfoApi = {
    final: number;
    regular: number;
    discount_percent: number;
};
export type ProductApi = {
    id: number;
    price: PriceInfoApi;
    thumbnail: string;
    name: string;
    average_rating: number;
    reviews_count: number;
    tag?: {
        id: number;
        name: string;
    } | null;
    sku: string;
    slug: string;
    tags?: {
        id: number;
        name: string;
    }[];
    images?: {
        small: string;
        medium: string;
        large: string;
    }[];
    unit?: string;
    brand?: {
        name: string;
        image: string;
        slug: string;
        products_count: number;
    };
    product_promotions?: ProductPromotionApi[];
    description?: string;
    categories?: CategoryApi[];
    is_in_stock?: boolean;
};
export type BannerApi = {
    name: string;
    featured_image: string;
    url: string;
    image_alt: string;
};
export type FooterInfoApi = {
    general: {
        logo: string;
        content: string;
        copyright: string;
        verified: Array<{
            image: string;
            url: string;
        }>;
    };
    menu: Array<{
        menu_title: string;
        items: Array<{
            title: string;
            url: string;
        }>;
    }>;
    social: {
        title: string;
        socials: Array<{
            icon: string;
            name: string;
            url: string;
        }>;
    };
    branch: {
        title: string;
        branch: Array<{
            flag: string;
            name: string;
            url: string;
        }>;
    };
};
export type HotSearchKeywordApi = {
    name: string;
};
export type HelpfulUrlApi = {
    name: string;
    url: string;
    featured_image: string;
};
export type BlogPostApi = {
    title: string;
    image: string;
    link: string;
    post_data: {
        reviewed: {
            author: BlogPostDataReviewedUserApi | null;
            editor: BlogPostDataReviewedUserApi | null;
            expert: BlogPostDataReviewedUserApi | null;
            fact_check: BlogPostDataReviewedUserApi | null;
            is_author: boolean;
        };
        categories: {
            term_id: number;
            name: string;
            permalink: string;
            text_color: string;
        }[];
        post_date: string;
        post_modified: string;
        modified_time: string;
    };
};
export type BrandApi = {
    id: number;
    image: string;
    position: string;
    is_popular: boolean;
    banners: BannerApi[] | null;
    summary: string;
    name: string;
    slug: string;
    description: string | null;
    bestseller_products: ProductApi[] | null;
};
export type HomePageApi = {
    brands: BrandApi[];
    hot_deals: ProductApi[];
    new_products: ProductApi[];
    slide_banners: BannerApi[];
    sub_banners: BannerApi[];
    footer_banners: BannerApi[];
    blog_posts: BlogPostApi[];
    popular_categories: CategoryApi[];
    suggest_products: CategoryApi[];
    promotions: PromotionApi[];
};
export type BlogPostDataReviewedUserApi = {
    ID: number;
    user_id: number;
    former_role: string;
    role: string;
    slug: string;
    display_name: string;
    description: string;
    profile_url: string;
    avatar: string;
    avatar_thumbnail: string;
    turn_off_profile: boolean;
};
export type CategoryApi = {
    id: number;
    name: string;
    slug: string;
    logo: string;
    color?: string;
    children?: CategoryApi[] | null;
    products?: ProductApi[] | null;
};
export type NavigationApi = {
    hot_search_keywords: HotSearchKeywordApi[];
    helpful_urls: HelpfulUrlApi[];
    categories: CategoryApi[];
    footer: FooterInfoApi;
    store_id: number;
    customer_id: number;
    cart_items_qty?: number;
};
export type CategoryPageApi = {
    id: number;
    name: string;
    slug: string;
    description: string;
    banners: BannerApi[];
    bestseller_products: ProductApi[];
};
export type BrandPageApi = BrandApi;
export type ProductsApi = {
    products: ProductApi[];
    pagination: PaginationApi;
};
export type BrandsApi = {
    brands: BrandApi[];
    pagination: PaginationApi;
};
export type ProductDetailPageApi = {
    related_products: ProductApi[];
    bestseller_products: ProductApi[];
    viewed_products: ProductApi[];
    promotions?: PromotionApi[];
} & ProductApi;
export type SearchPageApi = {
    products: ProductApi[];
    suggest_products: CategoryApi[] | null;
    hot_deals: ProductApi[];
    pagination: PaginationApi;
};
export type ProductReviewApi = {
    review_id: string;
    created_at: string;
    title: string;
    detail: string;
    nick_name: string;
    avatar: string | null;
    rating_votes: {
        rating_code: string;
        value: string;
        percent: string;
    }[];
    images: string[];
};
export type ProductPromotionApi = {
    id: number;
    name: string;
    thumbnail: string;
    expiration_date: string;
};
export type PromotionApi = {
    id: number;
    name: string;
    thumbnail: string;
    expired_date?: string;
    slug: string;
    banners?: string[];
    description?: string;
    meta_title?: string;
    meta_keywords?: string;
    meta_description?: string;
};
export type CustomAttributesApi = {
    attribute_code: string;
    value: string;
};
export type AddressApi = {
    id: number;
    customer_id: number;
    firstname: string;
    telephone: string;
    street: [string];
    default_shipping: boolean;
    default_billing: boolean;
    region: {
        region_id: string;
        region: string;
    };
    custom_attributes: CustomAttributesApi[];
    extension_attributes?: {
        full_address: string;
    };
};
export type PromotionListApi = {
    promotions: PromotionApi[];
    pagination: PaginationApi;
};
export type PromotionPageApi = {
    items: PromotionApi[];
    pagination: PaginationApi;
};
export type StatisticApi = {
    status: OrderStatus;
    amount: string;
};
export type OrderApi = {
    order_number: string;
    shipping_data: {
        shipping_method: string;
        shipping_description: string;
        shipping_address: {
            firstname: string;
            full_address: string;
            telephone: string;
        };
        store_address: null;
    };
    ordered_date: string;
    status: OrderStatus;
    totals: {
        subtotal: number;
        shipping_amount: number;
        discount_amount: number;
        grand_total: number;
    };
    products: {
        sku: string;
        name: string;
        price: number;
        row_total: number;
        image: string;
        qty: number;
    }[];
    payment_method: string;
};
export type OrderConfirmationApi = {
    is_success: boolean;
    order_info: OrderApi;
};
export type AddressListApi = {
    items: AddressApi[];
    total_count: number;
};
export type OrderListApi = {
    items: OrderApi[];
    pagination: PaginationApi;
    statistic: StatisticApi[];
};
export type ProductReviewListApi = {
    items: ProductReviewApi[];
    pagination: PaginationApi;
    review_statistic: {
        level: string;
        amount: string;
    }[];
};
export type SearchSuggestionBoxApi = {
    popular_keywords?: string[];
    suggestions?: ProductApi[] | null;
    popular_products?: ProductApi[] | null;
    popular_categories?: CategoryApi[] | null;
};
export type ProvinceApi = {
    id: string;
    code: string;
    name: string;
};
export type ProvinceListApi = {
    available_regions: ProvinceApi[];
};
export type DistrictListApi = {
    districts: DistrictApi[];
};
export type DistrictApi = {
    id: string;
    name: string;
};
export type CommuneApi = {
    id: string;
    name: string;
};
export type CommuneListApi = {
    communes: CommuneApi[];
};
export type AddressFormApi = {
    id?: number;
    firstname: string;
    lastname: string;
    country_id: string;
    region_id: string;
    telephone: string;
    default_shipping: boolean;
    default_billing: boolean;
    street: [string];
    custom_attributes: CustomAttributesApi[];
};
export type CartItemApi = {
    item_id: number;
    sku: string;
    qty: number;
    name: string;
    price: number;
    product_type: string;
    quote_id: string;
    extension_attributes?: {
        base_price: number;
        thumbnail: string;
        row_total: number;
        promotions?: ProductPromotionApi[];
        is_in_stock: boolean;
        url_key: string;
    };
};
export type CartAddressApi = {
    id?: number;
    region: string;
    region_id: number;
    region_code: string;
    country_id: string;
    street: string[];
    postcode: string;
    city: string;
    firstname: string;
    lastname: string;
    customer_id?: number;
    email: string;
    telephone: string;
    same_as_billing?: number;
    save_in_address_book?: number;
    customer_address_id?: number;
    extension_attributes: {
        full_address: string;
    };
};
export type EstimatedShippingApi = {
    carrier_code: string;
    method_code: string;
    carrier_title: string;
    method_title: string;
    amount: number;
    base_amount: number;
    available: boolean;
    error_message: string;
    price_excl_tax: number;
    price_incl_tax: number;
};
export type PaymentInformationApi = {
    payment_methods: {
        code: string;
        title: string;
    }[];
    totals: CartTotalApi;
};
export type CartBaseCustomerApi = {
    email?: string;
    firstname?: string;
    lastname?: string;
};
export type CartLoggedInCustomerApi = {
    id: number;
    group_id: number;
    created_at: string;
    updated_at: string;
    created_in: string;
    store_id: number;
    website_id: number;
    addresses: CartAddressApi[];
    disable_auto_group_change: number;
    extension_attributes: {
        is_subscribed: boolean;
    };
} & CartBaseCustomerApi;
export type CartApi = {
    id: number;
    created_at: string;
    updated_at: string;
    is_active: boolean;
    is_virtual: boolean;
    items: CartItemApi[];
    items_count: number;
    items_qty: number;
    customer: Partial<CartLoggedInCustomerApi>;
    billing_address: CartAddressApi;
    orig_order_id: number;
    currency: {
        global_currency_code: string;
        base_currency_code: string;
        store_currency_code: string;
        quote_currency_code: string;
        store_to_base_rate: number;
        store_to_quote_rate: number;
        base_to_global_rate: number;
        base_to_quote_rate: number;
    };
    customer_is_guest: boolean;
    customer_note_notify: boolean;
    customer_tax_class_id: number;
    store_id: number;
    extension_attributes: {
        shipping_assignments: {
            shipping: {
                address: CartAddressApi;
                method: string;
            };
            items: CartItemApi[];
        }[];
    };
};
export type CartTotalApi = {
    grand_total: number;
    base_grand_total: number;
    subtotal: number;
    base_subtotal: number;
    discount_amount: number;
    base_discount_amount: number;
    subtotal_with_discount: number;
    base_subtotal_with_discount: number;
    shipping_amount: number;
    base_shipping_amount: number;
    shipping_discount_amount: number;
    base_shipping_discount_amount: number;
    tax_amount: number;
    base_tax_amount: number;
    weee_tax_applied_amount: number;
    shipping_tax_amount: number;
    base_shipping_tax_amount: number;
    subtotal_incl_tax: number;
    shipping_incl_tax: number;
    base_shipping_incl_tax: number;
    base_currency_code: string;
    quote_currency_code: string;
    items_qty: number;
    coupon_code: string;
    items: {
        item_id: number;
        price: number;
        base_price: number;
        qty: number;
        row_total: number;
        base_row_total: number;
        row_total_with_discount: number;
        tax_amount: number;
        base_tax_amount: number;
        tax_percent: number;
        discount_amount: number;
        base_discount_amount: number;
        discount_percent: number;
        price_incl_tax: number;
        base_price_incl_tax: number;
        row_total_incl_tax: number;
        base_row_total_incl_tax: number;
        options: string;
        weee_tax_applied_amount: number;
        weee_tax_applied: number;
        name: string;
    }[];
    total_segments: {
        code: string;
        title: string;
        value: number;
    }[];
    extension_attributes: {
        coupon_description_text: string;
    };
};
export type CouponApi = {
    code: string;
    name: string;
    thumbnail: string;
    expired_date: string;
};
export type CouponListApi = {
    items: CouponApi[];
    pagination: PaginationApi;
};
export type ShippingApi = {
    carrier_code: string;
    method_code: string;
    carrier_title: string;
    method_title: string;
    base_amount: number;
    available: boolean;
    error_message: string;
    price_excl_tax: number;
    price_incl_tax: number;
    extension_attributes: {
        thumbnail: string;
    };
};
export type PaymentMethodsApi = {
    payment_code: string;
    payment_thumbnail: string;
    payment_title: string;
};
export type ShippingInformation = {
    extension_attributes: {
        payment_detail_info: PaymentMethodsApi[];
    };
    totals: CartTotalApi;
};
