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
      }
    }
  },
  {
    sequelize,
    modelName: 'FalukantCharacter',
    tableName: 'character',
    schema: 'falukant_data',
    timestamps: true,
    underscored: true}
);

export default FalukantCharacter;
