import { DataTypes } from 'sequelize';
import { sequelize } from '../../utils/sequelize.js';

const Match3LevelTileType = sequelize.define('Match3LevelTileType', {
  id: {
    type: DataTypes.INTEGER,
    primaryKey: true,
    autoIncrement: true
  },
  levelId: {
    type: DataTypes.INTEGER,
    allowNull: false,
    comment: 'Referenz auf den Level'
  },
  tileTypeId: {
    type: DataTypes.INTEGER,
    allowNull: false,
    comment: 'Referenz auf den Tile-Typ'
  },
  weight: {
    type: DataTypes.INTEGER,
    allowNull: false,
    defaultValue: 1,
    comment: 'Gewichtung für die Wahrscheinlichkeit, dass dieser Tile-Typ erscheint'
  },
  isActive: {
    type: DataTypes.BOOLEAN,
    allowNull: false,
    defaultValue: true,
    comment: 'Ob dieser Tile-Typ in diesem Level aktiv ist'
  }
}, {
  tableName: 'match3_level_tile_types',
  schema: 'match3',
  timestamps: true,
  underscored: true,  // WICHTIG: Alle Datenbankfelder im snake_case Format
  indexes: [
    {
      unique: true,
      fields: ['level_id', 'tile_type_id']  // WICHTIG: Bei underscored: true müssen snake_case Namen verwendet werden
    }
  ]
});

export default Match3LevelTileType;
