import { ProductOptionDataModel } from "./product";

export interface OrderModal {
  paid: boolean;
  orderNumber: string;
  createdAt: string;
  price: string;
  grandTotal: string;
  paymentMethod: string;
  discount: string;
  _id: string;
  name: string;
  contactNo: string;
  transactionId: string;
  ContactNo: string;
  billingAddress: {
    name: string;
    addressLine1: string;
    addressLine2: string;
    city: string;
    country: string;
    state: string;
    zipcode: string;
    contactNo: string;
    email: string;
  };

  email: string;
  online: boolean;
  Ispickup: boolean;
  items: [
    {
      shippingPrice: number;
      tax: number;
      item: {
        pickUp: boolean;
        quantity: number;
        price: number;
        artworkFiles: [{
          image: string;
          notes: string;
          original: string;
          page: string;
          proof: Boolean;
          spotUV: string;
        }]
        productId: {
          options: [{
            variantItemId: {
              attributeItemId: {
                attributeTypeId: string,
                displayName: string,
                image: string,
                name: string,
                position: number;
                _id: string
              }
              position: number;
              status: boolean;
              variantId: {
                attributeInfo: string;
                attributeType: {
                  _id: string,
                  name: string,
                  code: string,
                  position: number
                },
                isAfterShow: boolean,
                isRequired: boolean,
                isTemplate: boolean,
                parentId: string,
                position: number,
                status: boolean,
                type: string,
                _id: string
              }
              _id: string;
            }
          }
          ]
        }
      }
      logs: [
        {
          setAs: string;
          customerStatus: string;
          date: string;
        }
      ];
      shippingAddress: {
        name: string;
        addressLine1: string;
        addressLine2: string;
        city: string;
        country: string;
        state: string;
        zipcode: string;
        contactNo: string;
        email: string;
      };
    }
  ];
}

export interface Side {
  page: string;
  image: string;
  spotUV: string;
  original: string;
  proof: boolean;
}

export interface OrderDetailsModel {
  _id: string;
  checkStatus: string;
  createdAt: string;
  email: string;
  isProofing: boolean;
  pdfProofAmount?: number;
  isRequestForChange: boolean;
  isRequestForChangeProof: boolean;
  logs: unknown[];
  price: number;
  productId: ProductOptionDataModel;
  proofApproval: boolean;
  quantity: string;
  artworkFiles: Side[];
  updatedAt: string;
  uploadDesign: boolean;
}

export interface OrderDetailsResponseModel {
  data: OrderDetailsModel;
  success: boolean;
}