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

const Room = sequelize.define('Room', {
    id: {
        type: DataTypes.INTEGER,
        primaryKey: true,
        autoIncrement: true},
    title: {
        type: DataTypes.TEXT,
        allowNull: false},
    ownerId: {
        type: DataTypes.INTEGER,
        allowNull: true, // kann null sein, wenn system-owned
    },
    roomTypeId: {
        type: DataTypes.INTEGER,
        allowNull: true},
    isPublic: {
        type: DataTypes.BOOLEAN,
        allowNull: false,
        defaultValue: true},
    genderRestrictionId: {
        type: DataTypes.INTEGER,
        allowNull: true},
    password: {
        type: DataTypes.STRING,
        allowNull: true},
    minAge: {
        type: DataTypes.INTEGER,
        allowNull: true},
    maxAge: {
        type: DataTypes.INTEGER,
        allowNull: true},
    passwordHash: {
        type: DataTypes.TEXT,
        allowNull: true},
    friendsOfOwnerOnly: {
        type: DataTypes.BOOLEAN,
        allowNull: false,
        defaultValue: false},
    requiredUserRightId: {
        type: DataTypes.INTEGER,
        allowNull: true}}, {
    schema: 'chat',
    tableName: 'room',
    timestamps: true,
    underscored: true,
    indexes: [
        {
            name: 'idx_chat_room_owner',
            fields: ['owner_id']},
    ]});

export default Room;
