"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.ReturnsFilter = exports.SalesFilter = exports.ProductFinancialsFilter = exports.StoreFinancialsFilter = exports.ProductFilterType = exports.DateFilterType = exports.FilterArguments = exports.FilterArgumentsType = void 0;
const jackson_js_1 = require("jackson-js");
var FilterArgumentsType;
(function (FilterArgumentsType) {
    FilterArgumentsType["IN"] = "IN";
    FilterArgumentsType["ILIKE"] = "ILIKE";
})(FilterArgumentsType = exports.FilterArgumentsType || (exports.FilterArgumentsType = {}));
class FilterArguments {
    constructor() {
        this.filters = {};
    }
    setFilter(key, value) {
        this.filters[key] = value;
    }
    getFilters() {
        return this.filters;
    }
}
__decorate([
    (0, jackson_js_1.JsonProperty)()
], FilterArguments.prototype, "allowNull", void 0);
__decorate([
    (0, jackson_js_1.JsonAnySetter)()
], FilterArguments.prototype, "setFilter", null);
__decorate([
    (0, jackson_js_1.JsonAnyGetter)()
], FilterArguments.prototype, "getFilters", null);
exports.FilterArguments = FilterArguments;
var DateFilterType;
(function (DateFilterType) {
    // is weekend date field
    DateFilterType["IS_WEEKEND"] = "IS_WEEKEND";
    // day of week date field
    DateFilterType["DAY_OF_WEEK"] = "DAY_OF_WEEK";
    // day of year date field
    DateFilterType["DAY_OF_YEAR"] = "DAY_OF_YEAR";
    // day of month field
    DateFilterType["DAY_OF_MONTH"] = "DAY_OF_MONTH";
    // week field
    DateFilterType["WEEK"] = "WEEK";
    // month field
    DateFilterType["MONTH"] = "MONTH";
    // year field
    DateFilterType["YEAR"] = "YEAR";
    // season
    DateFilterType["SEASON"] = "SEASON";
})(DateFilterType = exports.DateFilterType || (exports.DateFilterType = {}));
var ProductFilterType;
(function (ProductFilterType) {
    // bin field
    ProductFilterType["BIN"] = "BIN";
    // sku field
    ProductFilterType["SKU"] = "SKU";
    // product_id field
    ProductFilterType["PRODUCT_ID"] = "PRODUCT_ID";
    // product_parent_id field
    ProductFilterType["PRODUCT_PARENT_ID"] = "PRODUCT_PARENT_ID";
    // brand field
    ProductFilterType["BRAND"] = "BRAND";
    // element in the product_tags jsonb field
    ProductFilterType["PRODUCT_TAG"] = "PRODUCT_TAG";
})(ProductFilterType = exports.ProductFilterType || (exports.ProductFilterType = {}));
var StoreFinancialsFilter;
(function (StoreFinancialsFilter) {
    StoreFinancialsFilter["FINANCIAL_EVENT_TYPE"] = "FINANCIAL_EVENT_TYPE";
})(StoreFinancialsFilter = exports.StoreFinancialsFilter || (exports.StoreFinancialsFilter = {}));
var ProductFinancialsFilter;
(function (ProductFinancialsFilter) {
    // marketplace field
    ProductFinancialsFilter["MARKETPLACE"] = "MARKETPLACE";
    // country field
    ProductFinancialsFilter["COUNTRY"] = "COUNTRY";
})(ProductFinancialsFilter = exports.ProductFinancialsFilter || (exports.ProductFinancialsFilter = {}));
var SalesFilter;
(function (SalesFilter) {
    SalesFilter["COUNTRY"] = "COUNTRY";
    SalesFilter["STATUS"] = "STATUS";
    SalesFilter["MARKETPLACE"] = "MARKETPLACE";
    SalesFilter["CUSTOMER"] = "CUSTOMER";
})(SalesFilter = exports.SalesFilter || (exports.SalesFilter = {}));
var ReturnsFilter;
(function (ReturnsFilter) {
    ReturnsFilter["REASON"] = "REASON";
    ReturnsFilter["CONDITION"] = "CONDITION";
})(ReturnsFilter = exports.ReturnsFilter || (exports.ReturnsFilter = {}));
//# sourceMappingURL=filter.js.map