import { OrderModal, Side } from "./order";
import { FinalQuantityModel, ProductOptionDataModel, ProductOptionDetailItem } from "./product";

export interface LogEntry {
  statusTitle: string;
  setAs: string;
  customerStatus: string;
  allowCancellation: boolean;
  adminNotification: boolean;
  customerNotification: boolean;
  _id: string;
  updatedby: string;
  updateddate: string;
}

export interface CartInformationModal {

  // isrefund: boolean | null;
  // isproofing: boolean | null;
  // isrequestForChange: boolean | null;
  // isrequestforchangeproof: boolean | null;
  // _id: string;
  // Date: string;
  // TurnAroundTime: string;
  // backproof: boolean | null;
  // frontproof: boolean | null;
  // logs: LogEntry[];
  // originalBack: string;
  // originalFront: string;
  // proofapproval: boolean | null;
  // refundtransactionid: string | null;
  servicetype: string | null;
  // trackingNumber: string | null;
  // imagesArray: [string];
  // BackImage: string;
  // BackSpotUV: string;
  // FrontImage: string;
  // FrontSpotUV: string;
  // optionId: {
  //   price: number | null;
  //   weight: number | null;
  //   _id: string;
  //   parentId: {
  //     name: string;
  //     _id: string;
  //   };
  //   detail: ProductOptionDetailItem[];
  // };
  shippingIndex?: number | null;
  shippingMethod?: Record<string, unknown>[] | [];
  shippingAddress?: {
    addressLine1: string;
    addressLine2: string;
    city: string;
    companyName: string;
    contactNo: string;
    country: string;
    countryCode: string;
    email: string;
    isBilling: boolean;
    isShipping: boolean;
    name: string;
    state: string;
    stateProvinceCode: string;
    zipcode: string;
  };
  shippingPrice?: string;
  deliveryMethod?: string;
  tax?: string;
  taxType?: {
    taxType?: string | null;
    tax?: number | null;
  };
  _id: string;
  checkStatus: string;
  createdAt: string;
  email: string;
  isProofing: boolean;
  pdfProofAmount?: number;
  isRequestForChange: boolean;
  isRequestForChangeProof: boolean;
  price: string;
  proofApproval: boolean;
  quantity: string;
  uploadDesign: boolean;
  artworkFiles: Side[];
  productId: ProductOptionDataModel & { parentId: { _id: string, name: string } }
  logs: unknown[]

}

export interface CartResponse {
  success: boolean;
  data: CartInformationModal[];
}
