refactor(models): Moved models and Repositories to database

This commit is contained in:
Michel Fedde 2025-06-22 22:59:38 +02:00
parent d5f5fe5f1a
commit 9155f630d9
18 changed files with 42 additions and 42 deletions

View file

@ -3,9 +3,9 @@ import {Container} from "./Container";
import {DatabaseConnection} from "../Database/DatabaseConnection"; import {DatabaseConnection} from "../Database/DatabaseConnection";
import {configure, getLogger, Logger} from "log4js"; import {configure, getLogger, Logger} from "log4js";
import path from "node:path"; import path from "node:path";
import {GroupRepository} from "../Repositories/GroupRepository"; import {GroupRepository} from "../Database/Repositories/GroupRepository";
import {PlaydateRepository} from "../Repositories/PlaydateRepository"; import {PlaydateRepository} from "../Database/Repositories/PlaydateRepository";
import {GroupConfigurationRepository} from "../Repositories/GroupConfigurationRepository"; import {GroupConfigurationRepository} from "../Database/Repositories/GroupConfigurationRepository";
import {DiscordClient} from "../Discord/DiscordClient"; import {DiscordClient} from "../Discord/DiscordClient";
import {IconCache} from "../Icons/IconCache"; import {IconCache} from "../Icons/IconCache";
import {EventHandler} from "../Events/EventHandler"; import {EventHandler} from "../Events/EventHandler";

View file

@ -1,5 +1,5 @@
import {Model} from "./Model"; import {Model} from "./Model";
import {GuildMember, Role} from "../types/DiscordTypes"; import {GuildMember, Role} from "../../types/DiscordTypes";
export interface GroupModel extends Model { export interface GroupModel extends Model {
name: string; name: string;

View file

@ -1,6 +1,6 @@
import {Model} from "./Model"; import {Model} from "./Model";
import {GroupModel} from "./GroupModel"; import {GroupModel} from "./GroupModel";
import {Nullable} from "../types/Nullable"; import {Nullable} from "../../types/Nullable";
export interface PlaydateModel extends Model { export interface PlaydateModel extends Model {
group: Nullable<GroupModel> group: Nullable<GroupModel>

View file

@ -1,9 +1,9 @@
import {Repository} from "./Repository"; import {Repository} from "./Repository";
import GroupConfiguration, {DBGroupConfiguration} from "../Database/tables/GroupConfiguration"; import GroupConfiguration, {DBGroupConfiguration} from "../tables/GroupConfiguration";
import {GroupConfigurationModel} from "../Models/GroupConfigurationModel"; import {GroupConfigurationModel} from "../Models/GroupConfigurationModel";
import {GroupModel} from "../Models/GroupModel"; import {GroupModel} from "../Models/GroupModel";
import {Nullable} from "../types/Nullable"; import {Nullable} from "../../types/Nullable";
import {DatabaseConnection} from "../Database/DatabaseConnection"; import {DatabaseConnection} from "../DatabaseConnection";
import {GroupRepository} from "./GroupRepository"; import {GroupRepository} from "./GroupRepository";
export class GroupConfigurationRepository extends Repository<GroupConfigurationModel, DBGroupConfiguration> { export class GroupConfigurationRepository extends Repository<GroupConfigurationModel, DBGroupConfiguration> {

View file

@ -1,11 +1,11 @@
import {Repository} from "./Repository"; import {Repository} from "./Repository";
import {GroupModel} from "../Models/GroupModel"; import {GroupModel} from "../Models/GroupModel";
import Groups, {DBGroup} from "../Database/tables/Groups"; import Groups, {DBGroup} from "../tables/Groups";
import {DatabaseConnection} from "../Database/DatabaseConnection"; import {DatabaseConnection} from "../DatabaseConnection";
import {GuildMember, UserFlagsBitField} from "discord.js"; import {GuildMember, UserFlagsBitField} from "discord.js";
import {Nullable} from "../types/Nullable"; import {Nullable} from "../../types/Nullable";
import {PlaydateRepository} from "./PlaydateRepository"; import {PlaydateRepository} from "./PlaydateRepository";
import {Container} from "../Container/Container"; import {Container} from "../../Container/Container";
export class GroupRepository extends Repository<GroupModel, DBGroup> { export class GroupRepository extends Repository<GroupModel, DBGroup> {

View file

@ -1,10 +1,10 @@
import {Repository} from "./Repository"; import {Repository} from "./Repository";
import {PlaydateModel} from "../Models/PlaydateModel"; import {PlaydateModel} from "../Models/PlaydateModel";
import Playdate, {DBPlaydate} from "../Database/tables/Playdate"; import Playdate, {DBPlaydate} from "../tables/Playdate";
import {DatabaseConnection} from "../Database/DatabaseConnection"; import {DatabaseConnection} from "../DatabaseConnection";
import {GroupRepository} from "./GroupRepository"; import {GroupRepository} from "./GroupRepository";
import {GroupModel} from "../Models/GroupModel"; import {GroupModel} from "../Models/GroupModel";
import {Nullable} from "../types/Nullable"; import {Nullable} from "../../types/Nullable";
export class PlaydateRepository extends Repository<PlaydateModel, DBPlaydate> { export class PlaydateRepository extends Repository<PlaydateModel, DBPlaydate> {

View file

@ -1,10 +1,10 @@
import {DatabaseConnection} from "../Database/DatabaseConnection"; import {DatabaseConnection} from "../DatabaseConnection";
import {Model} from "../Models/Model"; import {Model} from "../Models/Model";
import {Nullable} from "../types/Nullable"; import {Nullable} from "../../types/Nullable";
import {DatabaseDefinition} from "../Database/DatabaseDefinition"; import {DatabaseDefinition} from "../DatabaseDefinition";
import {Container} from "../Container/Container"; import {Container} from "../../Container/Container";
import {EventHandler} from "../Events/EventHandler"; import {EventHandler} from "../../Events/EventHandler";
import {ElementCreatedEvent} from "../Events/EventClasses/ElementCreatedEvent"; import {ElementCreatedEvent} from "../../Events/EventClasses/ElementCreatedEvent";
export class Repository<ModelType extends Model, IntermediateModelType = unknown> { export class Repository<ModelType extends Model, IntermediateModelType = unknown> {

View file

@ -4,8 +4,8 @@ import {
GuildMember, SlashCommandIntegerOption, GuildMember, SlashCommandIntegerOption,
} from "discord.js"; } from "discord.js";
import {Container} from "../../Container/Container"; import {Container} from "../../Container/Container";
import {GroupRepository} from "../../Repositories/GroupRepository"; import {GroupRepository} from "../../Database/Repositories/GroupRepository";
import {GroupModel} from "../../Models/GroupModel"; import {GroupModel} from "../../Database/Models/GroupModel";
import {UserError} from "../UserError"; import {UserError} from "../UserError";
export class GroupSelection { export class GroupSelection {

View file

@ -12,8 +12,8 @@ import {
userMention userMention
} from "discord.js"; } from "discord.js";
import {AutocompleteCommand, ChatInteractionCommand, Command} from "./Command"; import {AutocompleteCommand, ChatInteractionCommand, Command} from "./Command";
import {GroupModel} from "../../Models/GroupModel"; import {GroupModel} from "../../Database/Models/GroupModel";
import {GroupRepository} from "../../Repositories/GroupRepository"; import {GroupRepository} from "../../Database/Repositories/GroupRepository";
import {Container} from "../../Container/Container"; import {Container} from "../../Container/Container";
import {GroupSelection} from "../CommandPartials/GroupSelection"; import {GroupSelection} from "../CommandPartials/GroupSelection";
import {UserError} from "../UserError"; import {UserError} from "../UserError";
@ -21,8 +21,8 @@ import {ArrayUtils} from "../../Utilities/ArrayUtils";
import {GroupConfigurationRenderer} from "../../Groups/GroupConfigurationRenderer"; import {GroupConfigurationRenderer} from "../../Groups/GroupConfigurationRenderer";
import {GroupConfigurationHandler} from "../../Groups/GroupConfigurationHandler"; import {GroupConfigurationHandler} from "../../Groups/GroupConfigurationHandler";
import {GroupConfigurationTransformers} from "../../Groups/GroupConfigurationTransformers"; import {GroupConfigurationTransformers} from "../../Groups/GroupConfigurationTransformers";
import {GroupConfigurationRepository} from "../../Repositories/GroupConfigurationRepository"; import {GroupConfigurationRepository} from "../../Database/Repositories/GroupConfigurationRepository";
import {PlaydateRepository} from "../../Repositories/PlaydateRepository"; import {PlaydateRepository} from "../../Database/Repositories/PlaydateRepository";
import {Nullable} from "../../types/Nullable"; import {Nullable} from "../../types/Nullable";
import {MenuRenderer} from "../../Menu/MenuRenderer"; import {MenuRenderer} from "../../Menu/MenuRenderer";
import {MenuItemType} from "../../Menu/MenuRenderer.types"; import {MenuItemType} from "../../Menu/MenuRenderer.types";

View file

@ -16,15 +16,15 @@ import {AutocompleteCommand, ChatInteractionCommand, Command} from "./Command";
import {Container} from "../../Container/Container"; import {Container} from "../../Container/Container";
import {GroupSelection} from "../CommandPartials/GroupSelection"; import {GroupSelection} from "../CommandPartials/GroupSelection";
import {UserError} from "../UserError"; import {UserError} from "../UserError";
import {PlaydateModel} from "../../Models/PlaydateModel"; import {PlaydateModel} from "../../Database/Models/PlaydateModel";
import {PlaydateRepository} from "../../Repositories/PlaydateRepository"; import {PlaydateRepository} from "../../Database/Repositories/PlaydateRepository";
import {GroupModel} from "../../Models/GroupModel"; import {GroupModel} from "../../Database/Models/GroupModel";
import * as ics from 'ics'; import * as ics from 'ics';
import ical from 'node-ical'; import ical from 'node-ical';
import {GroupConfigurationHandler} from "../../Groups/GroupConfigurationHandler"; import {GroupConfigurationHandler} from "../../Groups/GroupConfigurationHandler";
import {GroupConfigurationRepository} from "../../Repositories/GroupConfigurationRepository"; import {GroupConfigurationRepository} from "../../Database/Repositories/GroupConfigurationRepository";
import {privateDecrypt} from "node:crypto"; import {privateDecrypt} from "node:crypto";
import {GroupRepository} from "../../Repositories/GroupRepository"; import {GroupRepository} from "../../Database/Repositories/GroupRepository";
export class PlaydatesCommand implements Command, AutocompleteCommand, ChatInteractionCommand { export class PlaydatesCommand implements Command, AutocompleteCommand, ChatInteractionCommand {
definition(): SlashCommandBuilder { definition(): SlashCommandBuilder {

View file

@ -3,7 +3,7 @@ import {Container} from "../Container/Container";
import {ReminderEvent} from "./Handlers/ReminderEvent"; import {ReminderEvent} from "./Handlers/ReminderEvent";
import {ElementCreatedEvent} from "./EventClasses/ElementCreatedEvent"; import {ElementCreatedEvent} from "./EventClasses/ElementCreatedEvent";
import {sendCreatedNotificationEventHandler} from "./Handlers/SendCreatedNotification"; import {sendCreatedNotificationEventHandler} from "./Handlers/SendCreatedNotification";
import {PlaydateModel} from "../Models/PlaydateModel"; import {PlaydateModel} from "../Database/Models/PlaydateModel";
import {TimedEvent} from "./EventHandler.types"; import {TimedEvent} from "./EventHandler.types";
import {CleanupEvent} from "./Handlers/CleanupEvent"; import {CleanupEvent} from "./Handlers/CleanupEvent";
import {Logger} from "log4js"; import {Logger} from "log4js";

View file

@ -1,4 +1,4 @@
import {Model} from "../../Models/Model"; import {Model} from "../../Database/Models/Model";
import {EventType, NormalEvent} from "../EventHandler.types"; import {EventType, NormalEvent} from "../EventHandler.types";
export class ElementCreatedEvent<T extends Model = Model> implements NormalEvent { export class ElementCreatedEvent<T extends Model = Model> implements NormalEvent {

View file

@ -1,8 +1,8 @@
import {Container} from "../../Container/Container"; import {Container} from "../../Container/Container";
import {PlaydateRepository} from "../../Repositories/PlaydateRepository"; import {PlaydateRepository} from "../../Database/Repositories/PlaydateRepository";
import {GroupConfigurationHandler} from "../../Groups/GroupConfigurationHandler"; import {GroupConfigurationHandler} from "../../Groups/GroupConfigurationHandler";
import {GroupConfigurationRepository} from "../../Repositories/GroupConfigurationRepository"; import {GroupConfigurationRepository} from "../../Database/Repositories/GroupConfigurationRepository";
import {PlaydateModel} from "../../Models/PlaydateModel"; import {PlaydateModel} from "../../Database/Models/PlaydateModel";
import {ChannelId} from "../../types/DiscordTypes"; import {ChannelId} from "../../types/DiscordTypes";
import {DiscordClient} from "../../Discord/DiscordClient"; import {DiscordClient} from "../../Discord/DiscordClient";
import {EmbedBuilder, roleMention, time} from "discord.js"; import {EmbedBuilder, roleMention, time} from "discord.js";

View file

@ -1,11 +1,11 @@
import {ElementCreatedEvent} from "../EventClasses/ElementCreatedEvent"; import {ElementCreatedEvent} from "../EventClasses/ElementCreatedEvent";
import {PlaydateModel} from "../../Models/PlaydateModel"; import {PlaydateModel} from "../../Database/Models/PlaydateModel";
import PlaydateTableConfiguration from "../../Database/tables/Playdate"; import PlaydateTableConfiguration from "../../Database/tables/Playdate";
import {EmbedBuilder, roleMention, time} from "discord.js"; import {EmbedBuilder, roleMention, time} from "discord.js";
import {ArrayUtils} from "../../Utilities/ArrayUtils"; import {ArrayUtils} from "../../Utilities/ArrayUtils";
import {GroupConfigurationHandler} from "../../Groups/GroupConfigurationHandler"; import {GroupConfigurationHandler} from "../../Groups/GroupConfigurationHandler";
import {Container} from "../../Container/Container"; import {Container} from "../../Container/Container";
import {GroupConfigurationRepository} from "../../Repositories/GroupConfigurationRepository"; import {GroupConfigurationRepository} from "../../Database/Repositories/GroupConfigurationRepository";
import {DiscordClient} from "../../Discord/DiscordClient"; import {DiscordClient} from "../../Discord/DiscordClient";
const NEW_PLAYDATE_MESSAGES = [ const NEW_PLAYDATE_MESSAGES = [

View file

@ -1,6 +1,6 @@
import {RuntimeGroupConfiguration} from "./RuntimeGroupConfiguration"; import {RuntimeGroupConfiguration} from "./RuntimeGroupConfiguration";
import {GroupConfigurationRepository} from "../Repositories/GroupConfigurationRepository"; import {GroupConfigurationRepository} from "../Database/Repositories/GroupConfigurationRepository";
import {GroupModel} from "../Models/GroupModel"; import {GroupModel} from "../Database/Models/GroupModel";
import {GroupConfigurationResult, GroupConfigurationTransformers} from "./GroupConfigurationTransformers"; import {GroupConfigurationResult, GroupConfigurationTransformers} from "./GroupConfigurationTransformers";
// @ts-expect-error set-path is provided // @ts-expect-error set-path is provided
import setPath from 'object-path-set'; import setPath from 'object-path-set';

View file

@ -1,5 +1,5 @@
import {ChannelId} from "../types/DiscordTypes"; import {ChannelId} from "../types/DiscordTypes";
import {GroupConfigurationModel} from "../Models/GroupConfigurationModel"; import {GroupConfigurationModel} from "../Database/Models/GroupConfigurationModel";
import {Nullable} from "../types/Nullable"; import {Nullable} from "../types/Nullable";
import {ArrayUtils} from "../Utilities/ArrayUtils"; import {ArrayUtils} from "../Utilities/ArrayUtils";