Files
yourpart3/backend/models/chat/room.js
Torsten Schulz (local) 23f698d8fd feat(chat): add chat room management functionality
- Created new chat schema in the database.
- Implemented chat room model with necessary fields (title, ownerId, roomTypeId, etc.).
- Added room type model and rights model for chat functionality.
- Developed API endpoints for managing chat rooms, including create, edit, and delete operations.
- Integrated chat room management into the admin interface with a dedicated view and dialog for room creation/editing.
- Added internationalization support for chat room management UI.
- Implemented autocomplete for victim selection in underground activities.
- Enhanced the underground view with new activity types and political target selection.
2025-08-11 23:31:25 +02:00

70 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,
},
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;