"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.SalesOrderItemList = exports.SaleOrderItem = exports.SalesList = exports.Sale = exports.FinancialSaleEntry = void 0;
const jackson_js_1 = require("jackson-js");
const financial_entry_type_1 = require("./financial_entry_type");
const order_1 = require("./order");
const return_1 = require("./return");
const product_1 = require("./product");
class FinancialSaleEntry {
}
__decorate([
    (0, jackson_js_1.JsonProperty)()
], FinancialSaleEntry.prototype, "amount", void 0);
__decorate([
    (0, jackson_js_1.JsonProperty)()
], FinancialSaleEntry.prototype, "currency", void 0);
__decorate([
    (0, jackson_js_1.JsonProperty)(),
    (0, jackson_js_1.JsonClassType)({ type: () => [financial_entry_type_1.FinancialEntryType] })
], FinancialSaleEntry.prototype, "financialEntryType", void 0);
exports.FinancialSaleEntry = FinancialSaleEntry;
class Sale {
}
__decorate([
    (0, jackson_js_1.JsonProperty)()
], Sale.prototype, "id", void 0);
__decorate([
    (0, jackson_js_1.JsonProperty)()
], Sale.prototype, "provider", void 0);
__decorate([
    (0, jackson_js_1.JsonProperty)()
], Sale.prototype, "fulfillmentChannel", void 0);
__decorate([
    (0, jackson_js_1.JsonProperty)(),
    (0, jackson_js_1.JsonClassType)({ type: () => [Date] })
], Sale.prototype, "purchaseDate", void 0);
__decorate([
    (0, jackson_js_1.JsonProperty)()
], Sale.prototype, "quantity", void 0);
__decorate([
    (0, jackson_js_1.JsonProperty)(),
    (0, jackson_js_1.JsonClassType)({ type: () => [Array, [SaleOrderItem]] })
], Sale.prototype, "items", void 0);
__decorate([
    (0, jackson_js_1.JsonProperty)()
], Sale.prototype, "quantityReturned", void 0);
__decorate([
    (0, jackson_js_1.JsonProperty)()
], Sale.prototype, "status", void 0);
__decorate([
    (0, jackson_js_1.JsonProperty)(),
    (0, jackson_js_1.JsonClassType)({ type: () => [Object] })
], Sale.prototype, "buyer", void 0);
__decorate([
    (0, jackson_js_1.JsonProperty)(),
    (0, jackson_js_1.JsonClassType)({ type: () => [Object] })
], Sale.prototype, "shippingAddress", void 0);
__decorate([
    (0, jackson_js_1.JsonProperty)(),
    (0, jackson_js_1.JsonClassType)({ type: () => [Object] })
], Sale.prototype, "attributes", void 0);
__decorate([
    (0, jackson_js_1.JsonProperty)()
], Sale.prototype, "marketplace", void 0);
__decorate([
    (0, jackson_js_1.JsonProperty)(),
    (0, jackson_js_1.JsonClassType)({ type: () => [Array, [FinancialSaleEntry]] })
], Sale.prototype, "entries", void 0);
exports.Sale = Sale;
class SalesList {
}
__decorate([
    (0, jackson_js_1.JsonProperty)(),
    (0, jackson_js_1.JsonClassType)({ type: () => [Array, [Sale]] })
], SalesList.prototype, "sales", void 0);
__decorate([
    (0, jackson_js_1.JsonProperty)()
], SalesList.prototype, "totalCount", void 0);
exports.SalesList = SalesList;
class SaleOrderItem {
}
__decorate([
    (0, jackson_js_1.JsonProperty)()
], SaleOrderItem.prototype, "id", void 0);
__decorate([
    (0, jackson_js_1.JsonProperty)()
], SaleOrderItem.prototype, "sellerSku", void 0);
__decorate([
    (0, jackson_js_1.JsonProperty)()
], SaleOrderItem.prototype, "productId", void 0);
__decorate([
    (0, jackson_js_1.JsonProperty)()
], SaleOrderItem.prototype, "currentStatus", void 0);
__decorate([
    (0, jackson_js_1.JsonProperty)(),
    (0, jackson_js_1.JsonClassType)({ type: () => [product_1.Product] })
], SaleOrderItem.prototype, "product", void 0);
__decorate([
    (0, jackson_js_1.JsonProperty)(),
    (0, jackson_js_1.JsonClassType)({ type: () => [Array, [order_1.OrderItemStatus]] || [order_1.OrderItemStatus] })
], SaleOrderItem.prototype, "statusHistory", void 0);
__decorate([
    (0, jackson_js_1.JsonProperty)(),
    (0, jackson_js_1.JsonClassType)({ type: () => [Array, [FinancialSaleEntry]] })
], SaleOrderItem.prototype, "entries", void 0);
__decorate([
    (0, jackson_js_1.JsonProperty)(),
    (0, jackson_js_1.JsonClassType)({ type: () => [return_1.Return] })
], SaleOrderItem.prototype, "return", void 0);
exports.SaleOrderItem = SaleOrderItem;
class SalesOrderItemList {
}
__decorate([
    (0, jackson_js_1.JsonProperty)()
], SalesOrderItemList.prototype, "orderId", void 0);
__decorate([
    (0, jackson_js_1.JsonProperty)(),
    (0, jackson_js_1.JsonClassType)({ type: () => [Array, [SaleOrderItem]] })
], SalesOrderItemList.prototype, "items", void 0);
__decorate([
    (0, jackson_js_1.JsonProperty)()
], SalesOrderItemList.prototype, "totalCount", void 0);
exports.SalesOrderItemList = SalesOrderItemList;
//# sourceMappingURL=sale.js.map