"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const sequelize_1=require("sequelize");class icoLaunchPlan extends sequelize_1.Model{static initModel(e){return icoLaunchPlan.init({id:{type:sequelize_1.DataTypes.UUID,defaultValue:sequelize_1.DataTypes.UUIDV4,primaryKey:!0,allowNull:!1},name:{type:sequelize_1.DataTypes.STRING(191),allowNull:!1,validate:{notEmpty:{msg:"name: Launch plan name must not be empty"}}},description:{type:sequelize_1.DataTypes.TEXT,allowNull:!1,validate:{notEmpty:{msg:"description: Description must not be empty"}}},price:{type:sequelize_1.DataTypes.DOUBLE,allowNull:!1,validate:{isFloat:{msg:"price: Must be a valid number"},min:{args:[0],msg:"price: Cannot be negative"}}},currency:{type:sequelize_1.DataTypes.STRING(10),allowNull:!1,validate:{notEmpty:{msg:"currency: Currency must not be empty"}}},walletType:{type:sequelize_1.DataTypes.STRING(191),allowNull:!1,validate:{notEmpty:{msg:"walletType: Wallet type must not be empty"}}},features:{type:sequelize_1.DataTypes.JSON,allowNull:!1},recommended:{type:sequelize_1.DataTypes.BOOLEAN,allowNull:!1,defaultValue:!1},status:{type:sequelize_1.DataTypes.BOOLEAN,allowNull:!1,defaultValue:!0},sortOrder:{type:sequelize_1.DataTypes.INTEGER,allowNull:!1,defaultValue:0}},{sequelize:e,modelName:"icoLaunchPlan",tableName:"ico_launch_plan",timestamps:!0,paranoid:!0,indexes:[{name:"PRIMARY",unique:!0,fields:[{name:"id"}]}]})}static associate(e){icoLaunchPlan.hasMany(e.icoTokenOffering,{foreignKey:"planId",as:"offerings",onDelete:"CASCADE",onUpdate:"CASCADE"})}}exports.default=icoLaunchPlan;