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

const Match3TileType = sequelize.define('Match3TileType', {
  id: {
    type: DataTypes.INTEGER,
    primaryKey: true,
    autoIncrement: true
  },
  name: {
    type: DataTypes.STRING(50),
    allowNull: false,
    comment: 'Eindeutiger Name des Tile-Typs (z.B. "gem", "star", "heart")'
  },
  displayName: {
    type: DataTypes.STRING(100),
    allowNull: false,
    comment: 'Anzeigename des Tile-Typs (z.B. "Juwel", "Stern", "Herz")'
  },
  symbol: {
    type: DataTypes.STRING(10),
    allowNull: false,
    comment: 'Unicode-Symbol für den Tile-Typ (z.B. "💎", "⭐", "❤️")'
  },
  color: {
    type: DataTypes.STRING(7),
    allowNull: true,
    comment: 'Hex-Farbe für den Tile-Typ (z.B. "#ff6b6b")'
  },
  rarity: {
    type: DataTypes.STRING(20),
    allowNull: false,
    defaultValue: 'common',
    comment: 'Seltenheit des Tile-Typs (common, uncommon, rare, epic, legendary)'
  },
  points: {
    type: DataTypes.INTEGER,
    allowNull: false,
    defaultValue: 10,
    comment: 'Punkte, die dieser Tile-Typ beim Matchen gibt'
  },
  isActive: {
    type: DataTypes.BOOLEAN,
    allowNull: false,
    defaultValue: true,
    comment: 'Ob dieser Tile-Typ aktiv ist'
  }
}, {
  tableName: 'match3_tile_types',
  schema: 'match3',
  timestamps: true,
  underscored: true,  // WICHTIG: Alle Datenbankfelder im snake_case Format
  indexes: [
    {
      unique: true,
      fields: ['name']
    }
  ]
});

export default Match3TileType;
