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:...