All files / src/app/core/models/product product.model.ts

100% Statements 1/1
100% Branches 0/0
100% Functions 0/0
100% Lines 1/1

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63                                                                                                                          180x  
import { Attachment } from 'ish-core/models/attachment/attachment.model';
import { AttributeGroup } from 'ish-core/models/attribute-group/attribute-group.model';
import { Attribute } from 'ish-core/models/attribute/attribute.model';
import { Image } from 'ish-core/models/image/image.model';
import { VariationAttribute } from 'ish-core/models/product-variation/variation-attribute.model';
import { SeoAttributes } from 'ish-core/models/seo-attributes/seo-attributes.model';
import { Warranty } from 'ish-core/models/warranty/warranty.model';
 
export interface Product {
  name: string;
  shortDescription: string;
  longDescription: string;
  available: boolean;
  availableStock?: number;
  minOrderQuantity: number;
  maxOrderQuantity: number;
  stepQuantity: number;
  attributes: Attribute[];
  attributeGroups?: { [id: string]: AttributeGroup };
  attachments?: Attachment[];
  images: Image[];
  manufacturer: string;
  roundedAverageRating: number;
  numberOfReviews: number;
  readyForShipmentMin: number;
  readyForShipmentMax: number;
  sku: string;
  defaultCategoryId?: string;
  packingUnit: string;
 
  availableWarranties?: Warranty[];
 
  // properties added in model
  type: string;
  promotionIds: string[];
  completenessLevel: number;
  failed: boolean;
  seoAttributes?: SeoAttributes;
}
 
export interface VariationProduct extends Product {
  type: 'VariationProduct';
  variableVariationAttributes?: VariationAttribute[];
  productMasterSKU?: string;
}
 
export interface VariationProductMaster extends Product {
  type: 'VariationProductMaster';
  variationAttributeValues?: VariationAttribute[];
}
 
export interface ProductRetailSet extends Product {
  type: 'RetailSet';
}
 
export interface ProductBundle extends Product {
  type: 'Bundle';
}
 
export type AllProductTypes = Product | VariationProduct | VariationProductMaster | ProductBundle | ProductRetailSet;
 
export * from './product.helper';