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;
};
import { JsonProperty, JsonSerialize, JsonDeserialize, JsonClassType } from "jackson-js";
import { DateSerializer } from "../../../jack-x";
export const COMMAND_MESSAGE_IMPORT_FLOW_STEP_IN = "step-in";
export var ImportFlowCommand;
(function (ImportFlowCommand) {
    ImportFlowCommand["DOWNLOAD_PARTICIPATIONS"] = "download-seller-participations";
    ImportFlowCommand["DOWNLOAD_LISTING_REPORTS"] = "download-listings-reports";
    ImportFlowCommand["DOWNLOAD_SUPPRESSED_LISTING_REPORTS"] = "download-suppressed-listings-reports";
    ImportFlowCommand["DOWNLOAD_ORDERS_APIS"] = "download-orders-api";
    ImportFlowCommand["DOWNLOAD_ORDER_ITEMS_REPORTS"] = "download-order-items-reports";
    ImportFlowCommand["DOWNLOAD_RETURNS_REPORTS"] = "download-returns-reports";
    ImportFlowCommand["DOWNLOAD_FINANCIAL_APIS"] = "download-financials-apis";
    ImportFlowCommand["DOWNLOAD_INBOUND_SHIPMENTS_APIS"] = "download-inbound-shipments-apis";
    ImportFlowCommand["DOWNLOAD_DISPOSITION_ORDERS_REPORTS"] = "download-disposition-order-reports";
    ImportFlowCommand["DOWNLOAD_LEDGER_REPORTS"] = "download-ledger-reports";
    ImportFlowCommand["DOWNLOAD_LEDGER_DETAILED_REPORTS"] = "download-ledger-detailed-reports";
    ImportFlowCommand["DOWNLOAD_REIMBURSEMENTS_REPORTS"] = "download-reimbursements-reports";
    ImportFlowCommand["DOWNLOAD_LISTINGS_APIS"] = "download-listings-apis";
    ImportFlowCommand["DOWNLOAD_OFFERS_APIS"] = "download-offers-apis";
    ImportFlowCommand["DOWNLOAD_CATALOG_APIS"] = "download-catalog-apis";
    ImportFlowCommand["BUILD_LISTINGS"] = "build-listings";
    ImportFlowCommand["BUILD_OFFERS"] = "build-offers";
    ImportFlowCommand["BUILD_PRODUCTS"] = "build-products";
    ImportFlowCommand["BUILD_ORDERS"] = "build-orders";
    ImportFlowCommand["BUILD_CATALOG"] = "build-catalog";
    ImportFlowCommand["UPDATE_PRODUCTS"] = "update-products";
    ImportFlowCommand["BUILD_FINANCES"] = "build-finances";
    ImportFlowCommand["BUILD_REIMBURSEMENTS"] = "build-reimbursements";
    ImportFlowCommand["BUILD_FINANCIAL_ORDERS"] = "build-financial-orders";
    ImportFlowCommand["BUILD_LOT_UNITS_UNITARY"] = "build-lot-units-unitary";
    ImportFlowCommand["BUILD_INBOUND_SHIPMENTS"] = "build-inbound-shipments";
    ImportFlowCommand["BUILD_PURCHASE_ORDERS"] = "build-purchase-orders";
    ImportFlowCommand["BUILD_DISPOSITION_ORDERS"] = "build-disposition-orders";
    ImportFlowCommand["BUILD_TRANSACTIONS"] = "build-transactions";
    ImportFlowCommand["UPDATE_ORDER_ITEM_STATUS"] = "update-order-item-status";
    ImportFlowCommand["BUILD_LOTS"] = "build-lots";
    ImportFlowCommand["BUILD_CHRONO_ORDERS"] = "build-chrono-orders";
    ImportFlowCommand["BUILD_CHRONO_TRANSACTIONS"] = "build-chrono-transactions";
    ImportFlowCommand["CHRONO_ORDERS_STATUS_CHANGE"] = "chrono-orders-status-change";
    ImportFlowCommand["BUILD_PARTICIPATIONS"] = "build-participations";
    ImportFlowCommand["SETUP_STORE"] = "setup-store";
    ImportFlowCommand["FINISH"] = "finish";
})(ImportFlowCommand || (ImportFlowCommand = {}));
export class DownloadCommandArguments {
    constructor(uuid, type, startedAt, endAt, args) {
        this.uuid = uuid;
        this.type = type;
        this.startedAt = startedAt;
        this.endAt = endAt;
        this.args = args;
    }
}
__decorate([
    JsonProperty()
], DownloadCommandArguments.prototype, "type", void 0);
__decorate([
    JsonProperty()
], DownloadCommandArguments.prototype, "uuid", void 0);
__decorate([
    JsonProperty(),
    JsonSerialize({ using: DateSerializer.serialize }),
    JsonDeserialize({ using: DateSerializer.deserialize }),
    JsonClassType({ type: () => [Date] })
], DownloadCommandArguments.prototype, "startedAt", void 0);
__decorate([
    JsonProperty(),
    JsonSerialize({ using: DateSerializer.serialize }),
    JsonDeserialize({ using: DateSerializer.deserialize }),
    JsonClassType({ type: () => [Date] })
], DownloadCommandArguments.prototype, "endAt", void 0);
__decorate([
    JsonProperty()
], DownloadCommandArguments.prototype, "args", void 0);
export class FlowCommandCompleteArguments {
    constructor(uuid, event, cacheMode, etag) {
        this.uuid = uuid;
        this.event = event;
        this.downloadCacheMode = cacheMode;
        this.etag = etag;
    }
}
__decorate([
    JsonProperty()
], FlowCommandCompleteArguments.prototype, "uuid", void 0);
__decorate([
    JsonProperty()
], FlowCommandCompleteArguments.prototype, "event", void 0);
__decorate([
    JsonProperty({ required: false })
], FlowCommandCompleteArguments.prototype, "downloadCacheMode", void 0);
__decorate([
    JsonProperty({ required: false })
], FlowCommandCompleteArguments.prototype, "etag", void 0);
//# sourceMappingURL=import_flow.js.map