TypeScript

by Yuriy Bablyukh

TypeScript

interface Model {
  id: number;
  modelCode: string;
  modelName: string;
  globalType: "Jewelry"|"Watches"|"Packaging";
  type: string;
  quantityType: string;
  companyId: number;
  categories: string[];
  isDraft: boolean;
  variants: Variant[];
}

interface Variant {
  id: number;
  variantCode: string;
  variantName: string;
  styleCode: string;
  styleName: string;
  loupeVariantCode?: string | null;
  images: Array<Image>;
  colour?: string | null;
  sellMethod: "labour per gram"|"labour per piece"|"fixed - with metal lock"|"fixed - no metal lock"|"increment"|"per piece"|"per carat";
  countryOfOrigin: string;
  metalTitle: string;
  status: "published"|"unpublished"|"archived";
  privacy: "Open line"| "Exclusive";
  collections?: string | null;
  unitOfMeasure?: string | null;
  sizeMeasurement: string;
  sizeMm: number;
  listPrice: number;
  sizeYourSizeRegion?: string | null;
  minPullSizeMm?: number;
  maxPullSizeMm?: number;
  pullSizeYourSizeRegion?: string | null;
  widthMm?: number | null;
  heightMm?: number | null;
  depthMm?: number | null;
  diameterMm?: number | null;
  netWeightGrams: number;
  grossWeightGrams: number;
  weightTolerancePercent: number;
  sellCurrency: string;
  listGoldLock?: number | null;
  listSilverLock?: number | null;
  listPlatinumLock?: number | null;
  rsrpRRP?: string | null;
  sampleLeadTimeDays: number;
  productionLeadTimeDays: number;
  moqUnits: number;
  moqGrams?: number | null;
  moqType: string;
  stones: Array<Stone>;
  finish: Array<Finish>;
  findings: Array<Finding>;
  chains: Array<Chain>;
  plating: Array<Plating>;
  materialList: Array<MaterialList>;
  line: Array<Line>;
  compatibleStones: CompatibleStones;
}

interface Line {
  isAllCountries: boolean;
  isAllVariants: boolean;
  countries: Array<string>;
  companyId: string;
}

interface CompatibleStones {
  designedFor: string;
  width: number;
  length: number;
  depth: number;
  estimatedCaratWeight: number;
  alternativeCompatibleStones:...