"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const sequelize_1=require("sequelize");class exchange extends sequelize_1.Model{static initModel(e){return exchange.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: Name must not be empty"}},comment:"Internal name identifier for the exchange"},title:{type:sequelize_1.DataTypes.STRING(191),allowNull:!1,validate:{notEmpty:{msg:"title: Title must not be empty"}},comment:"Display title of the exchange"},description:{type:sequelize_1.DataTypes.TEXT,allowNull:!0,comment:"Description of the exchange provider"},status:{type:sequelize_1.DataTypes.BOOLEAN,allowNull:!0,defaultValue:!1,validate:{isBoolean:{msg:"status: Status must be a boolean value"}},comment:"Exchange connection status (active/inactive)"},username:{type:sequelize_1.DataTypes.STRING(191),allowNull:!0,validate:{notEmpty:{msg:"username: Username must not be empty"}},comment:"Exchange API username/identifier"},licenseStatus:{type:sequelize_1.DataTypes.BOOLEAN,allowNull:!0,defaultValue:!1,validate:{isBoolean:{msg:"licenseStatus: License Status must be a boolean value"}},comment:"Exchange license validation status"},version:{type:sequelize_1.DataTypes.STRING(191),allowNull:!0,defaultValue:"0.0.1",validate:{notEmpty:{msg:"version: Version must not be empty"}},comment:"Exchange integration version"},productId:{type:sequelize_1.DataTypes.STRING(191),allowNull:!0,unique:"exchangeProductIdKey",validate:{notEmpty:{msg:"productId: Product ID must not be empty"}},comment:"Unique product identifier for the exchange"},type:{type:sequelize_1.DataTypes.STRING(191),allowNull:!0,defaultValue:"spot",validate:{notEmpty:{msg:"type: Type must not be empty"}},comment:"Type of exchange (spot, futures, etc.)"},link:{type:sequelize_1.DataTypes.STRING(500),allowNull:!0,comment:"Envato product URL for this exchange provider"},proxyUrl:{type:sequelize_1.DataTypes.STRING(500),allowNull:!0,comment:"Proxy URL for exchange API requests (e.g., http://user:pass@host:port or socks5://host:port)"}},{sequelize:e,modelName:"exchange",tableName:"exchange",timestamps:!1,indexes:[{name:"PRIMARY",unique:!0,using:"BTREE",fields:[{name:"id"}]},{name:"exchangeProductIdKey",unique:!0,using:"BTREE",fields:[{name:"productId"}]}]})}static associate(e){}}exports.default=exchange;