import { ValuesOf } from '@iqser/common-ui/lib/utils';

export const SuperTypes = {
    TextHighlight: 'text-highlight',
    SuggestionChangeLegalBasis: 'suggestion-change-legal-basis',
    SuggestionRecategorizeImage: 'suggestion-recategorize-image',
    SuggestionAddDictionary: 'suggestion-add-dictionary',
    SuggestionForceRedaction: 'suggestion-force-redaction',
    SuggestionForceHint: 'suggestion-force-hint',
    SuggestionResize: 'suggestion-resize',
    SuggestionRemoveDictionary: 'suggestion-remove-dictionary',
    SuggestionAdd: 'suggestion-add',
    SuggestionRemove: 'suggestion-remove',
    DeclinedSuggestion: 'suggestion-declined',
    IgnoredHint: 'hint-ignored',
    Skipped: 'skipped',
    Redaction: 'redaction',
    ManualRedaction: 'manual',
    Recommendation: 'recommendation',
    Hint: 'hint',
} as const;

export type SuperType = ValuesOf<typeof SuperTypes>;

export const LowLevelFilterTypes = {
    [SuperTypes.Hint]: true,
    [SuperTypes.Redaction]: true,
    [SuperTypes.Recommendation]: true,
    [SuperTypes.IgnoredHint]: true,
    [SuperTypes.Skipped]: true,
} as const;

export const FalsePositiveSuperTypes = {
    [SuperTypes.Hint]: true,
    [SuperTypes.Redaction]: true,
    [SuperTypes.IgnoredHint]: true,
    [SuperTypes.Skipped]: true,
} as const;

export const SuggestionAddSuperTypes = {
    [SuperTypes.SuggestionAdd]: true,
    [SuperTypes.SuggestionAddDictionary]: true,
    [SuperTypes.SuggestionForceRedaction]: true,
    [SuperTypes.SuggestionForceHint]: true,
} as const;

export const SuggestionRemoveSuperTypes = {
    [SuperTypes.SuggestionRemove]: true,
    [SuperTypes.SuggestionRemoveDictionary]: true,
} as const;

export const SuggestionsSuperTypes = {
    [SuperTypes.SuggestionAdd]: true,
    [SuperTypes.SuggestionAddDictionary]: true,
    [SuperTypes.SuggestionForceRedaction]: true,
    [SuperTypes.SuggestionForceHint]: true,
    [SuperTypes.SuggestionChangeLegalBasis]: true,
    [SuperTypes.SuggestionRecategorizeImage]: true,
    [SuperTypes.SuggestionRemove]: true,
    [SuperTypes.SuggestionRemoveDictionary]: true,
    [SuperTypes.SuggestionResize]: true,
} as const;
