Files
yourpart3/backend/models/chat/room.js
Torsten Schulz (local) 66818cc728 feat: Anpassung der Datenbankmodelle zur Unterstützung von snake_case und Einführung von freezeTableName
- Aktualisierung der Modelle in verschiedenen Bereichen, um die Feldnamen im snake_case-Format zu verwenden.
- Hinzufügen der Option freezeTableName zu den Modellen, um die Tabellennamen in der Datenbank unverändert zu lassen.
- Verbesserung der Konsistenz und Lesbarkeit des Codes durch einheitliche Namenskonventionen.
2025-08-23 06:04:23 +02:00

71 lines
1.5 KiB
JavaScript

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,
},
owner_id: {
type: DataTypes.INTEGER,
allowNull: true, // kann null sein, wenn system-owned
},
room_type_id: {
type: DataTypes.INTEGER,
allowNull: true,
},
is_public: {
type: DataTypes.BOOLEAN,
allowNull: false,
defaultValue: true,
},
gender_restriction_id: {
type: DataTypes.INTEGER,
allowNull: true,
},
password: {
type: DataTypes.STRING,
allowNull: true,
},
min_age: {
type: DataTypes.INTEGER,
allowNull: true,
},
max_age: {
type: DataTypes.INTEGER,
allowNull: true,
},
password_hash: {
type: DataTypes.TEXT,
allowNull: true,
},
friends_of_owner_only: {
type: DataTypes.BOOLEAN,
allowNull: false,
defaultValue: false,
},
required_user_right_id: {
type: DataTypes.INTEGER,
allowNull: true,
},
}, {
schema: 'chat',
tableName: 'room',
timestamps: true,
underscored: true,
indexes: [
{
name: 'idx_chat_room_owner',
fields: ['owner_id'],
,
freezeTableName: true},
],
});
export default Room;