refactor: consolidate config types and remove file-based config

Tickets: #2, #3

- Remove duplicate type definitions from shared/lib/config.ts
- Import types from schema files (game-settings.ts, guild-settings.ts)
- Add GuildConfig interface to guild-settings.ts schema
- Rename ModerationConfig to ModerationCaseConfig in moderation.service.ts
- Delete shared/config/config.json and shared/scripts/migrate-config-to-db.ts
- Update settings API to use gameSettingsService exclusively
- Return DB format (strings) from API instead of runtime BigInts
- Fix moderation service tests to pass config as parameter

Breaking Changes:
- Removes legacy file-based configuration system
- API now returns database format with string values for BigInt fields
This commit is contained in:
syntaxbullet
2026-02-13 13:24:02 +01:00
parent 2d35a5eabb
commit 6eb4a32a12
6 changed files with 95 additions and 384 deletions

View File

@@ -5,7 +5,7 @@ import type { CreateCaseOptions, ClearCaseOptions, SearchCasesFilter } from "@/m
import { getUserWarningEmbed } from "@/modules/moderation/moderation.view";
import { CaseType } from "@shared/lib/constants";
export interface ModerationConfig {
export interface ModerationCaseConfig {
dmOnWarn?: boolean;
autoTimeoutThreshold?: number;
}
@@ -66,7 +66,7 @@ export class ModerationService {
guildName?: string;
dmTarget?: { send: (options: any) => Promise<any> };
timeoutTarget?: { timeout: (duration: number, reason: string) => Promise<any> };
config?: ModerationConfig;
config?: ModerationCaseConfig;
}) {
const moderationCase = await this.createCase({
type: CaseType.WARN,