/**
 * Fulfillment API
 *  - alpha: Currently developed API version. Subject to major changes. - beta: A semi-stable early access version. New features can be added. Breaking changes are possible. - stable: The API is recommended for use in production.  [Changelog](https://fulfillment-api.steve.niceshops.com/v2/docs/changelog.html)  All data is transferred in UTF-8 encoding.\\ The API uses stateless HTTP. No cookies have to be kept.\\ Authentication via OAuth2 client credentials flow.  [Privacy Policy](https://www.niceshops.com/en/dienstleistungen/data-privacy-policy)  [Fulfillment API PHP client @Packagist](https://packagist.org/packages/datenkraft/bb-fulfillment-api-php-client)
 *
 * The version of the OpenAPI document: v2.beta
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import { ProductImage } from './product-image';
import { ReservedFor } from './reserved-for';
/**
 *
 * @export
 * @interface ProductAllOf
 */
export interface ProductAllOf {
    /**
     *
     * @type {string}
     * @memberof ProductAllOf
     */
    'productNumber'?: string;
    /**
     * The shop to which the product belongs.
     * @type {string}
     * @memberof ProductAllOf
     */
    'shopCode'?: string;
    /**
     * Status of the product regarding sales. \\ Available values: - enabled: Product is on sale - enabled_external_only: Product is only available in external stores - deleted: Product is deleted - discontinued: Product is discontinued - expired: Product is expired - incorrect: Product was incorrectly created - internal: Product is available for internal sales only - preparation: Product is in preparation for sale
     * @type {string}
     * @memberof ProductAllOf
     */
    'productStatus'?: ProductAllOfProductStatusEnum;
    /**
     * Title of the Product.
     * @type {string}
     * @memberof ProductAllOf
     */
    'productTitle'?: string | null;
    /**
     * Original title of the Product.
     * @type {string}
     * @memberof ProductAllOf
     */
    'productTitleOriginal'?: string | null;
    /**
     *
     * @type {ProductImage}
     * @memberof ProductAllOf
     */
    'image'?: ProductImage;
    /**
     * Short description of the article.
     * @type {string}
     * @memberof ProductAllOf
     */
    'articleShortDescription'?: string | null;
    /**
     * Long description of the article.
     * @type {string}
     * @memberof ProductAllOf
     */
    'articleLongDescription'?: string | null;
    /**
     * The TARIC Code of the product.
     * @type {string}
     * @memberof ProductAllOf
     */
    'taricCode'?: string | null;
    /**
     * The list price of the product in EUR.
     * @type {number}
     * @memberof ProductAllOf
     */
    'listPriceEUR'?: number | null;
    /**
     * One of the available tax codes. - default: Default tax rate (in e.g. Austria 20 %) - reduced1: 1st reduced tax rate (in e.g. Austria 13 %) - reduced2: 2nd reduced tax rate (in e.g. Austria 10 %) - none: not taxable (0%)  Note: This can be null if the tax code could not be determined.
     * @type {string}
     * @memberof ProductAllOf
     */
    'taxCode'?: ProductAllOfTaxCodeEnum;
    /**
     * Number of the manufacturer. \\ Manufacturers can be queried with a GET /manufacturer call. \\ Note: This can be null in some cases (e.g. if the product is a bundle).
     * @type {string}
     * @memberof ProductAllOf
     */
    'manufacturerNumber'?: string | null;
    /**
     * Number of the supplier. \\ Suppliers can be queried with a GET /supplier call. \\ Note: This can be null in some cases (e.g. if the product is a bundle).
     * @type {string}
     * @memberof ProductAllOf
     */
    'supplierNumber'?: string | null;
    /**
     * The source of the product. - self: Own product - nice: Product of another supplier - bundle: Product that is composed of individual positions
     * @type {string}
     * @memberof ProductAllOf
     */
    'source'?: ProductAllOfSourceEnum;
    /**
     * Number of the brand. \\ Brands can be queried with a GET /brand call. \\ Note: This can be null in some cases (e.g. if the product is a bundle).
     * @type {string}
     * @memberof ProductAllOf
     */
    'brandNumber'?: string | null;
    /**
     * Amount stocked in the warehouse - the reserved amount for ongoing orders is NOT subtracted
     * @type {number}
     * @memberof ProductAllOf
     */
    'stocked'?: number;
    /**
     * Amount reserved for ongoing orders
     * @type {number}
     * @memberof ProductAllOf
     */
    'reserved'?: number;
    /**
     * Amount available for orders - the reserved amount for ongoing orders is subtracted - if the overbookingPossibilityStatus is \'only_inbound_deliveries\', the incoming amount is added
     * @type {number}
     * @memberof ProductAllOf
     */
    'available'?: number;
    /**
     * Amount of ongoing inbound deliveries
     * @type {number}
     * @memberof ProductAllOf
     */
    'incoming'?: number;
    /**
     * Amount processed in the receiving area but not yet shelved
     * @type {number}
     * @memberof ProductAllOf
     */
    'locked'?: number;
    /**
     * Status regarding the possibility of overbooking - possible: Overbooking is possible - not_possible: Overbooking is not possible - only_inbound_deliveries: Overbooking is only possible for the amount in ongoing inbound deliveries
     * @type {string}
     * @memberof ProductAllOf
     */
    'overbookingPossibilityStatus'?: ProductAllOfOverbookingPossibilityStatusEnum;
    /**
     *
     * @type {ReservedFor}
     * @memberof ProductAllOf
     */
    'reservedFor'?: ReservedFor;
    /**
     * Options for the product - no_external_sales: Product is not available for external sales - no_airmail_shipping: Product is not available for airmail shipping - serial_number_required: Serial number is required for the product - shipped_in_original_packaging: Product is shipped in original packaging - extra_shipping_only: Extra shipping is required for the product - dangerous_goods: Product is classified as dangerous goods - trace_code_required: Trace code is required for the product - refrigerated_product: Product is refrigerated - heat_sensitive: Product is heat sensitive - spedition_shipping_only: Product is only available for spedition shipping - batch_required: Batch is required for the product
     * @type {Array<string>}
     * @memberof ProductAllOf
     */
    'productOptions'?: Array<ProductAllOfProductOptionsEnum>;
}
export declare const ProductAllOfProductStatusEnum: {
    readonly Enabled: "enabled";
    readonly EnabledExternalOnly: "enabled_external_only";
    readonly Null: "null";
    readonly Deleted: "deleted";
    readonly Discontinued: "discontinued";
    readonly Expired: "expired";
    readonly Incorrect: "incorrect";
    readonly Internal: "internal";
    readonly Preparation: "preparation";
    readonly UnknownDefaultOpenApi: "11184809";
};
export type ProductAllOfProductStatusEnum = typeof ProductAllOfProductStatusEnum[keyof typeof ProductAllOfProductStatusEnum];
export declare const ProductAllOfTaxCodeEnum: {
    readonly Default: "default";
    readonly Reduced1: "reduced1";
    readonly Reduced2: "reduced2";
    readonly None: "none";
    readonly Null: "null";
    readonly UnknownDefaultOpenApi: "11184809";
};
export type ProductAllOfTaxCodeEnum = typeof ProductAllOfTaxCodeEnum[keyof typeof ProductAllOfTaxCodeEnum];
export declare const ProductAllOfSourceEnum: {
    readonly Self: "self";
    readonly Nice: "nice";
    readonly Bundle: "bundle";
    readonly UnknownDefaultOpenApi: "11184809";
};
export type ProductAllOfSourceEnum = typeof ProductAllOfSourceEnum[keyof typeof ProductAllOfSourceEnum];
export declare const ProductAllOfOverbookingPossibilityStatusEnum: {
    readonly Possible: "possible";
    readonly NotPossible: "not_possible";
    readonly OnlyInboundDeliveries: "only_inbound_deliveries";
    readonly UnknownDefaultOpenApi: "11184809";
};
export type ProductAllOfOverbookingPossibilityStatusEnum = typeof ProductAllOfOverbookingPossibilityStatusEnum[keyof typeof ProductAllOfOverbookingPossibilityStatusEnum];
export declare const ProductAllOfProductOptionsEnum: {
    readonly NoExternalSales: "no_external_sales";
    readonly NoAirmailShipping: "no_airmail_shipping";
    readonly SerialNumberRequired: "serial_number_required";
    readonly ShippedInOriginalPackaging: "shipped_in_original_packaging";
    readonly ExtraShippingOnly: "extra_shipping_only";
    readonly DangerousGoods: "dangerous_goods";
    readonly TraceCodeRequired: "trace_code_required";
    readonly RefrigeratedProduct: "refrigerated_product";
    readonly HeatSensitive: "heat_sensitive";
    readonly SpeditionShippingOnly: "spedition_shipping_only";
    readonly BatchRequired: "batch_required";
    readonly UnknownDefaultOpenApi: "11184809";
};
export type ProductAllOfProductOptionsEnum = typeof ProductAllOfProductOptionsEnum[keyof typeof ProductAllOfProductOptionsEnum];
