fix eventdb/model, fix static-create command, many small fixes
This commit is contained in:
@@ -1,25 +1,51 @@
|
||||
const {
|
||||
event_schedule: EventTimes,
|
||||
event_role_view: EventRoleView,
|
||||
event_roles: EventRoles,
|
||||
const {
|
||||
event_schedule: EventSchedule,
|
||||
event_roles: EventRoles,
|
||||
event: Event,
|
||||
} = require('./models')
|
||||
|
||||
const ReadEvents = async () => {
|
||||
try {
|
||||
const events = await EventTimes.findAll()
|
||||
return events
|
||||
const events = await EventSchedule.findAll({
|
||||
include: [{
|
||||
model: Event,
|
||||
as: 'event'
|
||||
}]
|
||||
})
|
||||
|
||||
const eventsMap = events.map(event => ({
|
||||
schedule_id: event.id,
|
||||
event_name: event.event.name,
|
||||
start_time: event.start_time,
|
||||
end_time: event.end_time,
|
||||
day_of_week: event.day_of_week
|
||||
}))
|
||||
|
||||
return eventsMap
|
||||
} catch (error) {
|
||||
console.error('Error reading event entries:', error)
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const GetEventRole = async () => {
|
||||
try {
|
||||
const eventRoles = await EventRoleView.findAll()
|
||||
const eventRoles = await EventRoles.findAll({
|
||||
include: [{
|
||||
model: Event,
|
||||
as: 'event'
|
||||
}],
|
||||
attributes: [
|
||||
'role', 'event.name'
|
||||
]
|
||||
})
|
||||
const rolesEventMap = new Map()
|
||||
|
||||
eventRoles.forEach(row => rolesEventMap.set(row.event_name, row.role))
|
||||
eventRoles.forEach(row => {
|
||||
if (!row.event) return
|
||||
rolesEventMap.set(row.event.name, row.role)
|
||||
})
|
||||
|
||||
return rolesEventMap
|
||||
} catch (error) {
|
||||
@@ -28,6 +54,7 @@ const GetEventRole = async () => {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const GetIconRole = async () => {
|
||||
try {
|
||||
const eventIcons = await EventRoles.findAll({
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
const Sequelize = require('sequelize')
|
||||
const Sequelize = require('sequelize');
|
||||
module.exports = function(sequelize, DataTypes) {
|
||||
return sequelize.define('birthday', {
|
||||
id: {
|
||||
autoIncrement: true,
|
||||
type: DataTypes.INTEGER,
|
||||
allowNull: false,
|
||||
primaryKey: true,
|
||||
primaryKey: true
|
||||
},
|
||||
date: {
|
||||
type: DataTypes.DATEONLY,
|
||||
allowNull: false,
|
||||
allowNull: false
|
||||
},
|
||||
discorduser: {
|
||||
type: DataTypes.STRING(100),
|
||||
allowNull: false,
|
||||
references: {
|
||||
model: 'discorduser',
|
||||
key: 'name',
|
||||
},
|
||||
},
|
||||
key: 'name'
|
||||
}
|
||||
}
|
||||
}, {
|
||||
sequelize,
|
||||
tableName: 'birthday',
|
||||
@@ -26,12 +26,12 @@ module.exports = function(sequelize, DataTypes) {
|
||||
timestamps: false,
|
||||
indexes: [
|
||||
{
|
||||
name: 'birthday_pkey',
|
||||
name: "birthday_pkey",
|
||||
unique: true,
|
||||
fields: [
|
||||
{ name: 'id' },
|
||||
],
|
||||
{ name: "id" },
|
||||
]
|
||||
},
|
||||
],
|
||||
})
|
||||
}
|
||||
]
|
||||
});
|
||||
};
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
const Sequelize = require('sequelize')
|
||||
const Sequelize = require('sequelize');
|
||||
module.exports = function(sequelize, DataTypes) {
|
||||
return sequelize.define('blacklist', {
|
||||
name: {
|
||||
type: DataTypes.STRING(100),
|
||||
allowNull: false,
|
||||
primaryKey: true,
|
||||
primaryKey: true
|
||||
},
|
||||
reason: {
|
||||
type: DataTypes.TEXT,
|
||||
allowNull: false,
|
||||
allowNull: false
|
||||
},
|
||||
reportedby: {
|
||||
type: DataTypes.STRING(100),
|
||||
allowNull: true,
|
||||
references: {
|
||||
model: 'discorduser',
|
||||
key: 'name',
|
||||
},
|
||||
},
|
||||
key: 'name'
|
||||
}
|
||||
}
|
||||
}, {
|
||||
sequelize,
|
||||
tableName: 'blacklist',
|
||||
@@ -25,12 +25,12 @@ module.exports = function(sequelize, DataTypes) {
|
||||
timestamps: false,
|
||||
indexes: [
|
||||
{
|
||||
name: 'blacklist_pkey',
|
||||
name: "blacklist_pkey",
|
||||
unique: true,
|
||||
fields: [
|
||||
{ name: 'name' },
|
||||
],
|
||||
{ name: "name" },
|
||||
]
|
||||
},
|
||||
],
|
||||
})
|
||||
}
|
||||
]
|
||||
});
|
||||
};
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
const Sequelize = require('sequelize')
|
||||
const Sequelize = require('sequelize');
|
||||
module.exports = function(sequelize, DataTypes) {
|
||||
return sequelize.define('discorduser', {
|
||||
name: {
|
||||
type: DataTypes.STRING(100),
|
||||
allowNull: false,
|
||||
primaryKey: true,
|
||||
},
|
||||
primaryKey: true
|
||||
}
|
||||
}, {
|
||||
sequelize,
|
||||
tableName: 'discorduser',
|
||||
@@ -13,12 +13,12 @@ module.exports = function(sequelize, DataTypes) {
|
||||
timestamps: false,
|
||||
indexes: [
|
||||
{
|
||||
name: 'discorduser_pkey',
|
||||
name: "discorduser_pkey",
|
||||
unique: true,
|
||||
fields: [
|
||||
{ name: 'name' },
|
||||
],
|
||||
{ name: "name" },
|
||||
]
|
||||
},
|
||||
],
|
||||
})
|
||||
}
|
||||
]
|
||||
});
|
||||
};
|
||||
|
||||
@@ -1,17 +1,18 @@
|
||||
const Sequelize = require('sequelize')
|
||||
module.exports = function(sequelize, DataTypes) {
|
||||
return sequelize.define('event', {
|
||||
const Sequelize = require('sequelize');
|
||||
|
||||
module.exports = function (sequelize, DataTypes) {
|
||||
const Event = sequelize.define('event', {
|
||||
id: {
|
||||
autoIncrement: true,
|
||||
type: DataTypes.INTEGER,
|
||||
allowNull: false,
|
||||
primaryKey: true,
|
||||
primaryKey: true
|
||||
},
|
||||
name: {
|
||||
type: DataTypes.STRING(255),
|
||||
allowNull: false,
|
||||
unique: 'event_name_key',
|
||||
},
|
||||
unique: 'event_name_key'
|
||||
}
|
||||
}, {
|
||||
sequelize,
|
||||
tableName: 'event',
|
||||
@@ -21,17 +22,23 @@ module.exports = function(sequelize, DataTypes) {
|
||||
{
|
||||
name: 'event_name_key',
|
||||
unique: true,
|
||||
fields: [
|
||||
{ name: 'name' },
|
||||
],
|
||||
fields: [{ name: 'name' }]
|
||||
},
|
||||
{
|
||||
name: 'event_pkey',
|
||||
unique: true,
|
||||
fields: [
|
||||
{ name: 'id' },
|
||||
],
|
||||
},
|
||||
],
|
||||
})
|
||||
}
|
||||
fields: [{ name: 'id' }]
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
Event.associate = function (models) {
|
||||
Event.hasMany(models.event_schedule, { as: 'event_schedules', foreignKey: 'event_id' });
|
||||
};
|
||||
|
||||
Event.associate = function (models) {
|
||||
Event.hasMany(models.event_roles, { as: 'event_roles', foreignKey: 'event_id' })
|
||||
}
|
||||
|
||||
return Event;
|
||||
};
|
||||
|
||||
@@ -1,28 +1,28 @@
|
||||
const Sequelize = require('sequelize')
|
||||
module.exports = function(sequelize, DataTypes) {
|
||||
return sequelize.define('event_roles', {
|
||||
const Sequelize = require('sequelize');
|
||||
module.exports = function (sequelize, DataTypes) {
|
||||
const EventRole = sequelize.define('event_roles', {
|
||||
event_id: {
|
||||
type: DataTypes.INTEGER,
|
||||
allowNull: true,
|
||||
references: {
|
||||
model: 'event',
|
||||
key: 'id',
|
||||
},
|
||||
key: 'id'
|
||||
}
|
||||
},
|
||||
role: {
|
||||
type: DataTypes.STRING(50),
|
||||
allowNull: false,
|
||||
allowNull: false
|
||||
},
|
||||
icon_name: {
|
||||
type: DataTypes.STRING(50),
|
||||
allowNull: true,
|
||||
allowNull: true
|
||||
},
|
||||
role_id: {
|
||||
autoIncrement: true,
|
||||
type: DataTypes.INTEGER,
|
||||
allowNull: false,
|
||||
primaryKey: true,
|
||||
},
|
||||
primaryKey: true
|
||||
}
|
||||
}, {
|
||||
sequelize,
|
||||
tableName: 'event_roles',
|
||||
@@ -30,12 +30,18 @@ module.exports = function(sequelize, DataTypes) {
|
||||
timestamps: false,
|
||||
indexes: [
|
||||
{
|
||||
name: 'event_roles_pkey',
|
||||
name: "event_roles_pkey",
|
||||
unique: true,
|
||||
fields: [
|
||||
{ name: 'role_id' },
|
||||
],
|
||||
{ name: "role_id" },
|
||||
]
|
||||
},
|
||||
],
|
||||
})
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
EventRole.associate = function (models) {
|
||||
EventRole.belongsTo(models.event, { as: 'event', foreignKey: 'event_id' })
|
||||
}
|
||||
|
||||
return EventRole
|
||||
};
|
||||
|
||||
@@ -1,32 +1,33 @@
|
||||
const Sequelize = require('sequelize')
|
||||
module.exports = function(sequelize, DataTypes) {
|
||||
return sequelize.define('event_schedule', {
|
||||
const Sequelize = require('sequelize');
|
||||
|
||||
module.exports = function (sequelize, DataTypes) {
|
||||
const EventSchedule = sequelize.define('event_schedule', {
|
||||
id: {
|
||||
autoIncrement: true,
|
||||
type: DataTypes.INTEGER,
|
||||
allowNull: false,
|
||||
primaryKey: true,
|
||||
primaryKey: true
|
||||
},
|
||||
event_id: {
|
||||
type: DataTypes.INTEGER,
|
||||
allowNull: false,
|
||||
references: {
|
||||
model: 'event',
|
||||
key: 'id',
|
||||
},
|
||||
key: 'id'
|
||||
}
|
||||
},
|
||||
day_of_week: {
|
||||
type: DataTypes.STRING(9),
|
||||
allowNull: true,
|
||||
allowNull: true
|
||||
},
|
||||
start_time: {
|
||||
type: DataTypes.TIME,
|
||||
allowNull: true,
|
||||
allowNull: true
|
||||
},
|
||||
end_time: {
|
||||
type: DataTypes.TIME,
|
||||
allowNull: true,
|
||||
},
|
||||
allowNull: true
|
||||
}
|
||||
}, {
|
||||
sequelize,
|
||||
tableName: 'event_schedule',
|
||||
@@ -36,10 +37,14 @@ module.exports = function(sequelize, DataTypes) {
|
||||
{
|
||||
name: 'event_schedule_pkey',
|
||||
unique: true,
|
||||
fields: [
|
||||
{ name: 'id' },
|
||||
],
|
||||
},
|
||||
],
|
||||
})
|
||||
}
|
||||
fields: [{ name: 'id' }]
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
EventSchedule.associate = function (models) {
|
||||
EventSchedule.belongsTo(models.event, { as: 'event', foreignKey: 'event_id' });
|
||||
};
|
||||
|
||||
return EventSchedule;
|
||||
};
|
||||
|
||||
@@ -1,37 +1,38 @@
|
||||
var DataTypes = require('sequelize').DataTypes
|
||||
var _birthday = require('./birthday')
|
||||
var _blacklist = require('./blacklist')
|
||||
var _discorduser = require('./discorduser')
|
||||
var _event = require('./event')
|
||||
var _event_roles = require('./event_roles')
|
||||
var _event_schedule = require('./event_schedule')
|
||||
var _static = require('./static')
|
||||
var _static_members = require('./static_members')
|
||||
var DataTypes = require("sequelize").DataTypes;
|
||||
var _birthday = require("./birthday");
|
||||
var _blacklist = require("./blacklist");
|
||||
var _discorduser = require("./discorduser");
|
||||
var _event = require("./event");
|
||||
var _event_roles = require("./event_roles");
|
||||
var _event_schedule = require("./event_schedule");
|
||||
var _static = require("./static");
|
||||
var _static_members = require("./static_members");
|
||||
|
||||
|
||||
function initModels(sequelize) {
|
||||
var birthday = _birthday(sequelize, DataTypes)
|
||||
var blacklist = _blacklist(sequelize, DataTypes)
|
||||
var discorduser = _discorduser(sequelize, DataTypes)
|
||||
var event = _event(sequelize, DataTypes)
|
||||
var event_roles = _event_roles(sequelize, DataTypes)
|
||||
var event_schedule = _event_schedule(sequelize, DataTypes)
|
||||
var static = _static(sequelize, DataTypes)
|
||||
var static_members = _static_members(sequelize, DataTypes)
|
||||
var birthday = _birthday(sequelize, DataTypes);
|
||||
var blacklist = _blacklist(sequelize, DataTypes);
|
||||
var discorduser = _discorduser(sequelize, DataTypes);
|
||||
var event = _event(sequelize, DataTypes);
|
||||
var event_roles = _event_roles(sequelize, DataTypes);
|
||||
var event_schedule = _event_schedule(sequelize, DataTypes);
|
||||
var static = _static(sequelize, DataTypes);
|
||||
var static_members = _static_members(sequelize, DataTypes);
|
||||
|
||||
discorduser.belongsToMany(static, { as: 'static_id_statics', through: static_members, foreignKey: 'username', otherKey: 'static_id' })
|
||||
static.belongsToMany(discorduser, { as: 'username_discordusers', through: static_members, foreignKey: 'static_id', otherKey: 'username' })
|
||||
birthday.belongsTo(discorduser, { as: 'discorduser_discorduser', foreignKey: 'discorduser'})
|
||||
discorduser.hasMany(birthday, { as: 'birthdays', foreignKey: 'discorduser'})
|
||||
blacklist.belongsTo(discorduser, { as: 'reportedby_discorduser', foreignKey: 'reportedby'})
|
||||
discorduser.hasMany(blacklist, { as: 'blacklists', foreignKey: 'reportedby'})
|
||||
static_members.belongsTo(discorduser, { as: 'username_discorduser', foreignKey: 'username'})
|
||||
discorduser.hasMany(static_members, { as: 'static_members', foreignKey: 'username'})
|
||||
event_roles.belongsTo(event, { as: 'event', foreignKey: 'event_id'})
|
||||
event.hasMany(event_roles, { as: 'event_roles', foreignKey: 'event_id'})
|
||||
event_schedule.belongsTo(event, { as: 'event', foreignKey: 'event_id'})
|
||||
event.hasMany(event_schedule, { as: 'event_schedules', foreignKey: 'event_id'})
|
||||
static_members.belongsTo(static, { as: 'static', foreignKey: 'static_id'})
|
||||
static.hasMany(static_members, { as: 'static_members', foreignKey: 'static_id'})
|
||||
discorduser.belongsToMany(static, { as: 'static_id_statics', through: static_members, foreignKey: "username", otherKey: "static_id" });
|
||||
static.belongsToMany(discorduser, { as: 'username_discordusers', through: static_members, foreignKey: "static_id", otherKey: "username" });
|
||||
birthday.belongsTo(discorduser, { as: "discorduser_discorduser", foreignKey: "discorduser" });
|
||||
discorduser.hasMany(birthday, { as: "birthdays", foreignKey: "discorduser" });
|
||||
blacklist.belongsTo(discorduser, { as: "reportedby_discorduser", foreignKey: "reportedby" });
|
||||
discorduser.hasMany(blacklist, { as: "blacklists", foreignKey: "reportedby" });
|
||||
static_members.belongsTo(discorduser, { as: "username_discorduser", foreignKey: "username" });
|
||||
discorduser.hasMany(static_members, { as: "static_members", foreignKey: "username" });
|
||||
event_roles.belongsTo(event, { as: "event", foreignKey: "event_id" });
|
||||
event.hasMany(event_roles, { as: "event_roles", foreignKey: "event_id" });
|
||||
event_schedule.belongsTo(event, { as: 'event', foreignKey: 'event_id' })
|
||||
event.hasMany(event_schedule, { as: 'event_schedules', foreignKey: 'event_id' })
|
||||
static_members.belongsTo(static, { as: "static", foreignKey: "static_id" });
|
||||
static.hasMany(static_members, { as: "static_members", foreignKey: "static_id" });
|
||||
|
||||
return {
|
||||
birthday,
|
||||
@@ -42,8 +43,9 @@ function initModels(sequelize) {
|
||||
event_schedule,
|
||||
static,
|
||||
static_members,
|
||||
}
|
||||
};
|
||||
}
|
||||
module.exports = initModels
|
||||
module.exports.initModels = initModels
|
||||
module.exports.default = initModels
|
||||
|
||||
module.exports = initModels;
|
||||
module.exports.initModels = initModels;
|
||||
module.exports.default = initModels;
|
||||
|
||||
@@ -1,29 +1,41 @@
|
||||
const Sequelize = require('sequelize')
|
||||
module.exports = function(sequelize, DataTypes) {
|
||||
const Sequelize = require('sequelize');
|
||||
module.exports = function (sequelize, DataTypes) {
|
||||
return sequelize.define('static', {
|
||||
id: {
|
||||
autoIncrement: true,
|
||||
type: DataTypes.INTEGER,
|
||||
allowNull: false,
|
||||
primaryKey: true,
|
||||
primaryKey: true
|
||||
},
|
||||
name: {
|
||||
type: DataTypes.STRING(12),
|
||||
allowNull: false,
|
||||
unique: 'unique_name',
|
||||
unique: "unique_name"
|
||||
},
|
||||
creator: {
|
||||
type: DataTypes.STRING(255),
|
||||
allowNull: false,
|
||||
allowNull: false
|
||||
},
|
||||
size: {
|
||||
type: DataTypes.INTEGER,
|
||||
allowNull: true,
|
||||
allowNull: true
|
||||
},
|
||||
time: {
|
||||
type: DataTypes.DATE,
|
||||
allowNull: true,
|
||||
allowNull: true
|
||||
},
|
||||
role_id: {
|
||||
type: DataTypes.INTEGER,
|
||||
allowNull: true // or false depending on your requirements
|
||||
},
|
||||
text_channel_id: {
|
||||
type: DataTypes.STRING, // or INTEGER if IDs are numeric
|
||||
allowNull: true // or false depending on your requirements
|
||||
},
|
||||
voice_channel_id: {
|
||||
type: DataTypes.STRING, // or INTEGER if IDs are numeric
|
||||
allowNull: true // or false depending on your requirements
|
||||
}
|
||||
}, {
|
||||
sequelize,
|
||||
tableName: 'static',
|
||||
@@ -31,19 +43,19 @@ module.exports = function(sequelize, DataTypes) {
|
||||
timestamps: false,
|
||||
indexes: [
|
||||
{
|
||||
name: 'static_pkey',
|
||||
name: "static_pkey",
|
||||
unique: true,
|
||||
fields: [
|
||||
{ name: 'id' },
|
||||
],
|
||||
{ name: "id" },
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'unique_name',
|
||||
name: "unique_name",
|
||||
unique: true,
|
||||
fields: [
|
||||
{ name: 'name' },
|
||||
],
|
||||
{ name: "name" },
|
||||
]
|
||||
},
|
||||
],
|
||||
})
|
||||
}
|
||||
]
|
||||
});
|
||||
};
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
const Sequelize = require('sequelize')
|
||||
module.exports = function(sequelize, DataTypes) {
|
||||
const Sequelize = require('sequelize');
|
||||
module.exports = function (sequelize, DataTypes) {
|
||||
return sequelize.define('static_members', {
|
||||
static_id: {
|
||||
type: DataTypes.INTEGER,
|
||||
@@ -7,8 +7,8 @@ module.exports = function(sequelize, DataTypes) {
|
||||
primaryKey: true,
|
||||
references: {
|
||||
model: 'static',
|
||||
key: 'id',
|
||||
},
|
||||
key: 'id'
|
||||
}
|
||||
},
|
||||
username: {
|
||||
type: DataTypes.STRING(100),
|
||||
@@ -16,9 +16,9 @@ module.exports = function(sequelize, DataTypes) {
|
||||
primaryKey: true,
|
||||
references: {
|
||||
model: 'discorduser',
|
||||
key: 'name',
|
||||
},
|
||||
},
|
||||
key: 'name'
|
||||
}
|
||||
}
|
||||
}, {
|
||||
sequelize,
|
||||
tableName: 'static_members',
|
||||
@@ -26,13 +26,13 @@ module.exports = function(sequelize, DataTypes) {
|
||||
timestamps: false,
|
||||
indexes: [
|
||||
{
|
||||
name: 'static_members_pkey',
|
||||
name: "static_members_pkey",
|
||||
unique: true,
|
||||
fields: [
|
||||
{ name: 'static_id' },
|
||||
{ name: 'username' },
|
||||
],
|
||||
{ name: "static_id" },
|
||||
{ name: "username" },
|
||||
]
|
||||
},
|
||||
],
|
||||
})
|
||||
}
|
||||
]
|
||||
});
|
||||
};
|
||||
|
||||
@@ -1,33 +1,39 @@
|
||||
const {
|
||||
static: Static,
|
||||
static_members: StaticMembers,
|
||||
discorduser: DiscordUser,
|
||||
const {
|
||||
static: Static,
|
||||
static_members: StaticMembers,
|
||||
discorduser: DiscordUser,
|
||||
} = require('./models')
|
||||
|
||||
const CreateStatic = async (name, creator, members, size) => {
|
||||
const CreateStatic = async (name, creator, members, size, role_id, text_channel_id, voice_channel_id) => {
|
||||
try {
|
||||
console.log(role_id, text_channel_id, voice_channel_id)
|
||||
|
||||
const staticEntry = await Static.create({
|
||||
name,
|
||||
creator,
|
||||
size,
|
||||
role_id,
|
||||
text_channel_id,
|
||||
voice_channel_id,
|
||||
})
|
||||
|
||||
const staticId = staticEntry.id
|
||||
|
||||
await Promise.all(
|
||||
members.map(async member => {
|
||||
if (!member.username) return;
|
||||
const [user] = await DiscordUser.findOrCreate({
|
||||
where: {
|
||||
name: member,
|
||||
where: {
|
||||
name: member.username,
|
||||
},
|
||||
defaults: {
|
||||
name: member,
|
||||
defaults: {
|
||||
name: member.username,
|
||||
},
|
||||
})
|
||||
|
||||
await StaticMembers.create({
|
||||
static_id: staticId,
|
||||
member: user.name,
|
||||
username: user.name,
|
||||
})
|
||||
})
|
||||
)
|
||||
@@ -60,8 +66,8 @@ const DeleteStatic = async (name) => {
|
||||
if (!staticEntry) return false
|
||||
|
||||
await StaticMembers.destroy({
|
||||
where: {
|
||||
static_id: staticEntry.id,
|
||||
where: {
|
||||
static_id: staticEntry.id,
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user