import { CaseType } from "@shared/lib/constants";

export { CaseType };

export interface CreateCaseOptions {
    type: CaseType;
    userId: string;
    username: string;
    moderatorId: string;
    moderatorName: string;
    reason: string;
    metadata?: Record<string, any>;
}

export interface ClearCaseOptions {
    caseId: string;
    clearedBy: string;
    clearedByName: string;
    reason?: string;
}

export interface ModerationCase {
    id: bigint;
    caseId: string;
    type: string;
    userId: bigint;
    username: string;
    moderatorId: bigint;
    moderatorName: string;
    reason: string;
    metadata: unknown;
    active: boolean;
    createdAt: Date;
    resolvedAt: Date | null;
    resolvedBy: bigint | null;
    resolvedReason: string | null;
}

export interface SearchCasesFilter {
    userId?: string;
    moderatorId?: string;
    type?: CaseType;
    active?: boolean;
    limit?: number;
    offset?: number;
}
