scheunemann-interfaces
Version:
Interfaces de Projetos Scheunemann
196 lines (195 loc) • 4.42 kB
TypeScript
import { GTINTypeEnum } from '../enums';
import { IProductBrand } from './i-brand';
import { IProductNcm } from './i-ncm';
export interface IProductGlobal {
/**
* Indicates whether the product is active.
* @default true
* @example true
*/
active: boolean;
/**
* Average price of the product.
* @example 1.5
* @default 0
* @minimum 0
* @maximum 9999999999999.99
*/
avgPrice: number;
/**
* Barcode of the product.
* @example "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAgAElEQ…"
* @default ""
*/
barcodeImage: string | null;
/**
* Contains brand information of the product.
* @example { "id": "5e4f1b1b1b1b1b1b1b1b1b1b", "name": "Brand name" }
*
*/
brand: IProductBrand;
/**
* CEST Code.
* @minlength 7
* @maxlength 7
*/
cest: string | null;
/**
* Date of product creation.
* @format date-time
* @example "2019-01-01T00:00:00.000Z"
* @default Date.now()
* @readonly
*/
createdAt: Date;
/**
* Description of the product or service.
* @minlength 1
* @maxlength 120
* @example "Product description"
*/
description: string;
/**
* Name of the user who created the product.
* @minlength 1
* @maxlength 120
* @example "User name"
*/
createdBy: string;
/**
* Gross weight of the product.
* @example 1.5
* @default 0
*/
grossWeight: number | null;
/**
* To be filled with the GTIN-8, GTIN-12, GTIN-13 or GTIN-14 code
* (old EAN, UPC and DUN-14 codes).
* For products that do not have a bar code with GTIN,
* the literal "WITHOUT GTIN" must be informed.
* @minlength 1
* @maxlength 14
* @example "123456789"
*/
gtin: number | null;
/**
* Type of GTIN.
* @default GTINTypeEnum.GTIN_13
* @minlength 1
* @maxlength 8
*/
gtinType: GTINTypeEnum;
/**
* Height of the product.
* @example 15
* @default 0
*/
height: number | null;
/**
* Identifier of the product.
* @minlength 24
* @maxlength 24
* @example "5e4f1b1b1b1b1b1b1b1b1b1b"
*/
id: string;
/**
* Length of the product.
* @example 15
* @default 0
*/
length: number | null;
/**
* Max cost of the product.
* @example 1.5
* @default 0
* @minimum 0
* @maximum 9999999999999.99
*/
maxPrice: number;
/**
* Quantity of the product.
* @example 1.5
* @default 0
*/
measureQuantity: number;
/**
* Height of the product.
* @example "UN"
* @default "UN"
*/
measureUnit: string;
/**
* Min cost of the product.
* @example 1.5
* @default 0
* @minimum 0
* @maximum 9999999999999.99
*/
minPrice: number;
/**
* Name of the product.
* @minlength 1
* @maxlength 120
* @example "Product name"
*/
name: string;
/**
* Fill in with the full NCM Code (position and sub-item) or, if you do not have it,
* with the NCM code "00" (two zeros). Format: "99999999" or "00"
* @minlength 2
* @maxlength 8
*/
ncm: IProductNcm;
/**
* Net weight of the product.
* @example 1.5
* @default 0
* @minimum 0
* @maximum 9999999999999.999
* @multipleOf 0.001
*/
netWeight: number | null;
/**
* Price of the product.
* @example 1.5
* @default 0
* @minimum 0
* @maximum 9999999999999.99
* @multipleOf 0.01
*/
price: number;
/**
* Tags associated with the product.
* @example ["tag1", "tag2"]
* @default []
* @uniqueItems true
* @minItems 0
* @maxItems 50
* @items
* @minlength 1
* @maxlength 60
*/
tags: string[];
/**
* URL of the product image.
* @minlength 1
* @maxlength 120
* @example "https://www.example.com/image.jpg"
* @default ""
*/
thumbnail: string | null;
/**
* Date when the product was last updated.
* @format date-time
* @example "2019-01-01T00:00:00.000Z"
* @default Date.now()
*/
updatedAt: Date;
/**
* Width of the product.
* @example 15
* @default 0
*
*/
width: number | null;
}