export interface MedusaPrice {
    id: string;
    price_list_id: string | null;
    price_list_type: string | null;
    min_quantity: number | null;
    max_quantity: number | null;
}

export interface MedusaCalculatedPrice {
    id: string;
    is_calculated_price_price_list: boolean;
    is_calculated_price_tax_inclusive: boolean;
    calculated_amount: number;
    raw_calculated_amount: {
        value: string;
        precision: number;
    };
    is_original_price_price_list: boolean;
    is_original_price_tax_inclusive: boolean;
    original_amount: number;
    raw_original_amount: {
        value: string;
        precision: number;
    };
    currency_code: string;
    calculated_price: MedusaPrice;
    original_price: MedusaPrice;
}

export interface MedusaOption {
    id: string;
    title: string;
    metadata: Record<string, any> | null;
    product_id: string;
    created_at: string;
    updated_at: string;
    deleted_at: string | null;
    values: MedusaOptionValue[];
}

export interface MedusaOptionValue {
    id: string;
    value: string;
    metadata: Record<string, any> | null;
    option_id: string;
    option?: MedusaOption;
    created_at: string;
    updated_at: string;
    deleted_at: string | null;
}

export interface MedusaVariant {
    id: string;
    title: string;
    sku: string | null;
    barcode: string | null;
    ean: string | null;
    upc: string | null;
    allow_backorder: boolean;
    manage_inventory: boolean;
    hs_code: string | null;
    origin_country: string | null;
    mid_code: string | null;
    material: string | null;
    weight: number | null;
    length: number | null;
    height: number | null;
    width: number | null;
    metadata: Record<string, any> | null;
    variant_rank: number;
    product_id: string;
    created_at: string;
    updated_at: string;
    deleted_at: string | null;
    options: MedusaOptionValue[];
    calculated_price: MedusaCalculatedPrice;
}

export interface MedusaImage {
    id: string;
    url: string;
    metadata: Record<string, any> | null;
    rank: number;
    product_id: string;
    created_at: string;
    updated_at: string;
    deleted_at: string | null;
}

export interface MedusaProduct {
    id: string;
    title: string;
    subtitle: string | null;
    description: string;
    handle: string;
    is_giftcard: boolean;
    discountable: boolean;
    thumbnail: string;
    collection_id: string | null;
    type_id: string | null;
    weight: string | null;
    length: string | null;
    height: string | null;
    width: string | null;
    hs_code: string | null;
    origin_country: string | null;
    mid_code: string | null;
    material: string | null;
    created_at: string;
    updated_at: string;
    type: any | null;
    collection: any | null;
    options: MedusaOption[];
    variants: MedusaVariant[];
    images: MedusaImage[];
    tags: any[];
}

export interface MedusaResponse {
    product: MedusaProduct;
} 