import { DictionaryActions, ManualRedactionActions } from '@red/domain';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';

interface AnnotationActionResponses {
    error: string;
    success: string;
    conflictError?: string;
}

export const dictionaryActionsTranslations: Record<DictionaryActions, AnnotationActionResponses> = {
    add: {
        error: _('annotation-actions.message.dictionary.add.error'),
        conflictError: _('annotation-actions.message.dictionary.add.conflict-error'),
        success: _('annotation-actions.message.dictionary.add.success'),
    },
    approve: {
        error: _('annotation-actions.message.dictionary.approve.error'),
        success: _('annotation-actions.message.dictionary.approve.success'),
    },
    decline: {
        error: _('annotation-actions.message.dictionary.decline.error'),
        success: _('annotation-actions.message.dictionary.decline.success'),
    },
    remove: {
        error: _('annotation-actions.message.dictionary.remove.error'),
        success: _('annotation-actions.message.dictionary.remove.success'),
    },
    'request-remove': {
        error: _('annotation-actions.message.dictionary.request-remove.error'),
        success: _('annotation-actions.message.dictionary.request-remove.success'),
    },
    suggest: {
        error: _('annotation-actions.message.dictionary.suggest.error'),
        success: _('annotation-actions.message.dictionary.suggest.success'),
    },
    undo: {
        error: _('annotation-actions.message.dictionary.undo.error'),
        success: _('annotation-actions.message.dictionary.undo.success'),
    },
} as const;

export const manualRedactionActionsTranslations: Record<ManualRedactionActions, AnnotationActionResponses> = {
    add: {
        error: _('annotation-actions.message.manual-redaction.add.error'),
        success: _('annotation-actions.message.manual-redaction.add.success'),
    },
    approve: {
        error: _('annotation-actions.message.manual-redaction.approve.error'),
        success: _('annotation-actions.message.manual-redaction.approve.success'),
    },
    'change-legal-basis': {
        error: _('annotation-actions.message.manual-redaction.change-legal-basis.error'),
        success: _('annotation-actions.message.manual-redaction.change-legal-basis.success'),
    },
    decline: {
        error: _('annotation-actions.message.manual-redaction.decline.error'),
        success: _('annotation-actions.message.manual-redaction.decline.success'),
    },
    'force-redaction': {
        error: _('annotation-actions.message.manual-redaction.force-redaction.error'),
        success: _('annotation-actions.message.manual-redaction.force-redaction.success'),
    },
    'force-hint': {
        error: _('annotation-actions.message.manual-redaction.force-hint.error'),
        success: _('annotation-actions.message.manual-redaction.force-hint.success'),
    },
    'recategorize-image': {
        error: _('annotation-actions.message.manual-redaction.recategorize-image.error'),
        success: _('annotation-actions.message.manual-redaction.recategorize-image.success'),
    },
    'change-type': {
        error: _('annotation-actions.message.manual-redaction.change-type.error'),
        success: _('annotation-actions.message.manual-redaction.change-type.success'),
    },
    'request-change-legal-basis': {
        error: _('annotation-actions.message.manual-redaction.request-change-legal-basis.error'),
        success: _('annotation-actions.message.manual-redaction.request-change-legal-basis.success'),
    },
    'request-force-redaction': {
        error: _('annotation-actions.message.manual-redaction.request-force-redaction.error'),
        success: _('annotation-actions.message.manual-redaction.request-force-redaction.success'),
    },
    'request-force-hint': {
        error: _('annotation-actions.message.manual-redaction.request-force-hint.error'),
        success: _('annotation-actions.message.manual-redaction.request-force-hint.success'),
    },
    'request-image-recategorization': {
        error: _('annotation-actions.message.manual-redaction.request-image-recategorization.error'),
        success: _('annotation-actions.message.manual-redaction.request-image-recategorization.success'),
    },
    suggest: {
        error: _('annotation-actions.message.manual-redaction.suggest.error'),
        success: _('annotation-actions.message.manual-redaction.suggest.success'),
    },
    undo: {
        error: _('annotation-actions.message.manual-redaction.undo.error'),
        success: _('annotation-actions.message.manual-redaction.undo.success'),
    },
    remove: {
        error: _('annotation-actions.message.manual-redaction.remove.error'),
        success: _('annotation-actions.message.manual-redaction.remove.success'),
    },
    'remove-hint': {
        error: _('annotation-actions.message.manual-redaction.remove-hint.error'),
        success: _('annotation-actions.message.manual-redaction.remove-hint.success'),
    },
    'request-remove': {
        error: _('annotation-actions.message.manual-redaction.request-remove.error'),
        success: _('annotation-actions.message.manual-redaction.request-remove.success'),
    },
    'request-remove-hint': {
        error: _('annotation-actions.message.manual-redaction.request-remove-hint.error'),
        success: _('annotation-actions.message.manual-redaction.request-remove-hint.success'),
    },
} as const;
