import { Guild, GuildMember, PermissionFlagsBits } from 'discord.js';
import { prisma } from '../database';
import { logger } from '../utils/logger';
import { auditLogService } from './AuditLogService';

export class AutoRoleService {
  /**
   * 서버의 자동 역할 설정을 조회합니다.
   */
  async getConfig(guildId: string) {
    return prisma.autoRoleConfig.findUnique({
      where: { guildId },
    });
  }

  /**
   * 서버의 자동 역할 설정을 업데이트합니다.
   */
  async updateConfig(guildId: string, data: {
    userRoleIds?: string[];
    botRoleIds?: string[];
    isEnabled?: boolean;
    botEnabled?: boolean;
  }) {
    return prisma.autoRoleConfig.upsert({
      where: { guildId },
      create: {
        guildId,
        ...data,
      },
      update: data,
    });
  }

  /**
   * 자동 역할 부여 기능을 활성/비활성합니다.
   */
  async setEnabled(guildId: string, enabled: boolean) {
    return this.updateConfig(guildId, { isEnabled: enabled });
  }
}

export const autoRoleService = new AutoRoleService();
