import { Model, DataTypes } from 'sequelize'; import { sequelize } from '../../../utils/sequelize.js'; class FalukantCharacter extends Model {} FalukantCharacter.init( { userId: { type: DataTypes.INTEGER, allowNull: true}, regionId: { type: DataTypes.INTEGER, allowNull: false}, firstName: { type: DataTypes.INTEGER, allowNull: false}, lastName: { type: DataTypes.INTEGER, allowNull: false}, birthdate: { type: DataTypes.DATE, allowNull: false, defaultValue: DataTypes.NOW}, gender: { type: DataTypes.STRING}, health: { type: DataTypes.INTEGER, allowNull: false, defaultValue: 100}, titleOfNobility: { type: DataTypes.INTEGER, allowNull: false}, moodId: { type: DataTypes.INTEGER, allowNull: false, defaultValue: 1} , reputation: { type: DataTypes.INTEGER, allowNull: false, // Initialisierung: zufällig 20..80 (Prozent) // DB-seitig per DEFAULT umgesetzt, damit es auch ohne App-Logic gilt. defaultValue: sequelize.literal('(floor(random()*61)+20)'), validate: { min: 0, max: 100 } }, pregnancyDueAt: { type: DataTypes.DATE, allowNull: true, }, pregnancyFatherCharacterId: { type: DataTypes.INTEGER, allowNull: true, } }, { sequelize, modelName: 'FalukantCharacter', tableName: 'character', schema: 'falukant_data', timestamps: true, underscored: true, // Spalten erst nach Migration 20260330000000; ohne Exclude würde SELECT/INSERT auf alten DBs fehlschlagen defaultScope: { attributes: { exclude: ['pregnancyDueAt', 'pregnancyFatherCharacterId'] }, }, } ); export default FalukantCharacter;