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

const Tournament = sequelize.define('Tournament', {
    name: {
        type: DataTypes.STRING,
        allowNull: false,
    },
    date: {
        type: DataTypes.DATEONLY,
        allowNull: false,
    },
    type: {
        type: DataTypes.STRING,
        allowNull: false,
    },
    advancingPerGroup: {
        type: DataTypes.INTEGER,
        allowNull: false,
        defaultValue: 1,
    },
    numberOfGroups: {
        type: DataTypes.INTEGER,
        allowNull: true,
        defaultValue: 0, 
    },
    clubId: {
        type: DataTypes.INTEGER,
        allowNull: false,
        defaultValue: 1
    },
    winningSets: {
        type: DataTypes.INTEGER,
        allowNull: false,
        defaultValue: 3,
    },
    allowsExternal: {
        type: DataTypes.BOOLEAN,
        allowNull: false,
        defaultValue: false,
    },
    miniChampionshipYear: {
        type: DataTypes.INTEGER,
        allowNull: true,
        field: 'mini_championship_year',
        comment: 'Jahr der Minimeisterschaft; nur gesetzt bei Minimeisterschaften'
    },
    numberOfTables: {
        type: DataTypes.INTEGER,
        allowNull: true,
        defaultValue: null,
        comment: 'Anzahl der Tische, auf denen gespielt wird'
    },
    isDoublesTournament: {
        type: DataTypes.BOOLEAN,
        allowNull: false,
        defaultValue: false,
        field: 'is_doubles_tournament',
        comment: 'Turnierweite Markierung fuer Doppel-Turniere'
    },
}, {
  underscored: true,
  tableName: 'tournament',
  timestamps: true,
});

export default Tournament;
