Added groups to diary

This commit is contained in:
Torsten Schulz
2024-10-21 18:21:43 +02:00
parent 47fa81e190
commit f230b73273
17 changed files with 589 additions and 218 deletions

View File

@@ -11,13 +11,18 @@ const DiaryDateActivity = sequelize.define('DiaryDateActivity', {
},
diaryDateId: {
type: DataTypes.INTEGER,
allowNull: false,
allowNull: true,
references: {
model: DiaryDate,
key: 'id',
},
onDelete: 'CASCADE',
},
isTimeblock: {
type: DataTypes.BOOLEAN,
allowNull: false,
defaultValue: false,
},
predefinedActivityId: {
type: DataTypes.INTEGER,
allowNull: true,
@@ -27,11 +32,7 @@ const DiaryDateActivity = sequelize.define('DiaryDateActivity', {
},
onDelete: 'SET NULL',
},
customActivityName: {
type: DataTypes.STRING,
allowNull: true,
},
duration: {
duration: {
type: DataTypes.INTEGER,
allowNull: true,
},

View File

@@ -3,7 +3,13 @@ import sequelize from '../database.js';
import DiaryDate from './DiaryDates.js';
const Group = sequelize.define('Group', {
diaryDate: {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
allowNull: false,
},
diaryDateId: {
type: DataTypes.INTEGER,
allowNull: false,
references: {

View File

@@ -0,0 +1,40 @@
import { DataTypes } from 'sequelize';
import sequelize from '../database.js';
import DiaryDateActivity from './DiaryDateActivity.js';
import Group from './Group.js';
const GroupActivity = sequelize.define('GroupActivity', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
},
diaryDateActivity: {
type: DataTypes.INTEGER,
allowNull: false,
references: {
model: DiaryDateActivity,
key: 'id'
},
onDelete: 'CASCADE'
},
groupId: {
type: DataTypes.INTEGER,
allowNull: false,
references: {
model: Group,
key: 'id',
},
onDelete: 'CASCADE'
},
customActivity: {
type: DataTypes.INTEGER,
allowNull: true,
},
}, {
tableName: 'group_activity',
underscored: true,
timestamps: true,
});
export default GroupActivity;

View File

@@ -19,6 +19,8 @@ import League from './League.js';
import Team from './Team.js';
import Season from './Season.js';
import Location from './Location.js';
import Group from './Group.js';
import GroupActivity from './GroupActivity.js';
User.hasMany(Log, { foreignKey: 'userId' });
Log.belongsTo(User, { foreignKey: 'userId' });
@@ -94,6 +96,17 @@ User.hasMany(UserClub, { foreignKey: 'userId' });
UserClub.belongsTo(Club, { foreignKey: 'clubId', as: 'club' });
Club.hasMany(UserClub, { foreignKey: 'clubId' });
Group.belongsTo(DiaryDate, { foreignKey: 'diaryDateId', as: 'diaryDateGroup' });
DiaryDate.hasMany(Group, { foreignKey: 'diaryDateId', as: 'groupsDiaryDate' });
GroupActivity.belongsTo(DiaryDateActivity, { foreignKey: 'id', as: 'activityGroupActivity' });
DiaryDateActivity.hasMany(GroupActivity, { foreignKey: 'diaryDateActivity', as: 'groupActivities' });
Group.hasOne(GroupActivity, { foreignKey: 'groupId', as: 'groupGroupActivity' });
GroupActivity.belongsTo(Group, { foreignKey: 'groupId', as: 'groupsGroupActivity' });
GroupActivity.belongsTo(PredefinedActivity, { foreignKey: 'customActivity', as: 'groupPredefinedActivity' });
PredefinedActivity.hasMany(GroupActivity, { foreignKey: 'predefinedActivityId', as: 'groupPredefinedActivities' });
export {
User,
@@ -116,4 +129,6 @@ export {
Match,
League,
Team,
Group,
GroupActivity,
};