"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.TypeIsDecemalFixValue = exports.TypeIsDecemalToSequelize = exports.TypeIsDecemalToSwagger = void 0;
const sequelize_1 = require("sequelize");
const toSequelizeGenerator_1 = require("./generators/toSequelizeGenerator");
const toSwaggerGenerator_1 = require("./generators/toSwaggerGenerator");
const typeGenerator_1 = require("./generators/typeGenerator");
exports.TypeIsDecemalToSwagger = (0, toSwaggerGenerator_1.toSwaggerGenerator)((options) => ({
    type: 'integer',
    format: 'float',
    description: options === null || options === void 0 ? void 0 : options.comment,
}));
exports.TypeIsDecemalToSequelize = (0, toSequelizeGenerator_1.toSequelizeGenerator)((options) => (Object.assign(Object.assign({}, options), { type: sequelize_1.DataTypes.DECIMAL({
        precision: options === null || options === void 0 ? void 0 : options.precision,
        scale: options === null || options === void 0 ? void 0 : options.scale,
    }), comment: options === null || options === void 0 ? void 0 : options.comment })));
const TypeIsDecemalFixValue = (o) => {
    if (o === undefined || o === null)
        return o;
    return parseFloat(String(o));
};
exports.TypeIsDecemalFixValue = TypeIsDecemalFixValue;
const TypeIsDecemal = (0, typeGenerator_1.typeGenerator)((options) => ({
    __name: 'decimal',
    toSwagger: () => (0, exports.TypeIsDecemalToSwagger)(options),
    toSequelize: () => (0, exports.TypeIsDecemalToSequelize)(options),
    fixValue: exports.TypeIsDecemalFixValue,
}));
exports.default = TypeIsDecemal;
//# sourceMappingURL=decemal.js.map