import { Model, DataTypes } from 'sequelize'; import { sequelize } from '../../../utils/sequelize.js'; class RelationshipState extends Model {} RelationshipState.init( { relationshipId: { type: DataTypes.INTEGER, allowNull: false, unique: true, }, marriageSatisfaction: { type: DataTypes.INTEGER, allowNull: false, defaultValue: 55, validate: { min: 0, max: 100, }, }, marriagePublicStability: { type: DataTypes.INTEGER, allowNull: false, defaultValue: 55, validate: { min: 0, max: 100, }, }, loverRole: { type: DataTypes.STRING, allowNull: true, validate: { isIn: [[null, 'secret_affair', 'lover', 'mistress_or_favorite'].filter(Boolean)], }, }, affection: { type: DataTypes.INTEGER, allowNull: false, defaultValue: 50, validate: { min: 0, max: 100, }, }, visibility: { type: DataTypes.INTEGER, allowNull: false, defaultValue: 15, validate: { min: 0, max: 100, }, }, discretion: { type: DataTypes.INTEGER, allowNull: false, defaultValue: 50, validate: { min: 0, max: 100, }, }, maintenanceLevel: { type: DataTypes.INTEGER, allowNull: false, defaultValue: 50, validate: { min: 0, max: 100, }, }, statusFit: { type: DataTypes.INTEGER, allowNull: false, defaultValue: 0, validate: { min: -2, max: 2, }, }, monthlyBaseCost: { type: DataTypes.INTEGER, allowNull: false, defaultValue: 0, validate: { min: 0, }, }, monthsUnderfunded: { type: DataTypes.INTEGER, allowNull: false, defaultValue: 0, validate: { min: 0, }, }, active: { type: DataTypes.BOOLEAN, allowNull: false, defaultValue: true, }, acknowledged: { type: DataTypes.BOOLEAN, allowNull: false, defaultValue: false, }, exclusiveFlag: { type: DataTypes.BOOLEAN, allowNull: false, defaultValue: false, }, lastMonthlyProcessedAt: { type: DataTypes.DATE, allowNull: true, }, lastDailyProcessedAt: { type: DataTypes.DATE, allowNull: true, }, notesJson: { type: DataTypes.JSONB, allowNull: true, }, flagsJson: { type: DataTypes.JSONB, allowNull: true, }, }, { sequelize, modelName: 'RelationshipState', tableName: 'relationship_state', schema: 'falukant_data', timestamps: true, underscored: true, } ); export default RelationshipState;