export interface ProductData { category: string; name: string; image: string; description: string; place: string; process: string; people: string; pairing: string; available: boolean; isFeatured: boolean; price: number; customID: string; stripeID: string; } export interface ProductDataDB extends ProductData { id: string; _id: string; __v: number; } export interface FeaturedProductsResponseGet { message: string; featuredProducts: Array; } export interface ProductsResponseGet { message: string; product: Array; productCount: number; next: string; previous: string; } export interface ProductsResponseError { message: string; } export interface ProductsResponsePost { message: string; product: ProductData; } interface SingleProductResponseGet { message: string; product: ProductDataDB; similarProducts: Array; } export type SingleProductResponse = | SingleProductResponseGet | ProductsResponseError; export type ProductsResponse = | ProductsResponseGet | ProductsResponsePost | ProductsResponseError; export type FeaturedProductsResponse = | FeaturedProductsResponseGet | ProductsResponseError;