export const EmailNotificationScheduleTypes = {
    INSTANT: 'DAILY',
    DAILY: 'DAILY_SUMMARY',
    WEEKLY: 'WEEKLY_SUMMARY',
} as const;

export type EmailNotificationScheduleType = keyof typeof EmailNotificationScheduleTypes;
export const EmailNotificationScheduleTypesValues = Object.values(EmailNotificationScheduleTypes);

export const NotificationCategories = {
    inAppNotifications: 'inAppNotifications',
    // emailNotifications: 'emailNotifications',
} as const;

export const NotificationCategoriesValues = Object.values(NotificationCategories);

export const DossierNotificationsTypes = {
    dossierOwnerSet: 'DOSSIER_OWNER_SET',
    dossierOwnerRemoved: 'DOSSIER_OWNER_REMOVED',
    userBecomseDossierMember: 'USER_BECOMES_DOSSIER_MEMBER',
    userRemovedAsDossierMember: 'USER_REMOVED_AS_DOSSIER_MEMBER',
    userPromotedToApprover: 'USER_PROMOTED_TO_APPROVER',
    userDegradedToReviewer: 'USER_DEGRADED_TO_REVIEWER',
    dossierOwnerDeleted: 'DOSSIER_OWNER_DELETED',
    dossierDeleted: 'DOSSIER_DELETED',
} as const;

export const DossierNotificationsTypesValues = Object.values(DossierNotificationsTypes);

export const DocumentNotificationsTypes = {
    assignReviewer: 'ASSIGN_REVIEWER',
    assignApprover: 'ASSIGN_APPROVER',
    unassignedFromFile: 'UNASSIGNED_FROM_FILE',
    // documentUnderReview: 'DOCUMENT_UNDER_REVIEW',
    // documentUnderApproval: 'DOCUMENT_UNDER_APPROVAL',
    documentApproved: 'DOCUMENT_APPROVED',
} as const;

export const DocumentNotificationsTypesValues = Object.values(DocumentNotificationsTypes);

export const OtherNotificationsTypes = {
    downloadReady: 'DOWNLOAD_READY',
} as const;

export const OtherNotificationsTypesValues = Object.values(OtherNotificationsTypes);

export const NotificationGroupsKeys = ['dossier', 'document', 'other'] as const;
export const NotificationGroupsValues = [
    DossierNotificationsTypesValues,
    DocumentNotificationsTypesValues,
    OtherNotificationsTypesValues,
] as const;

export const SkipSimpleUserNotifications = [
    DossierNotificationsTypes.dossierOwnerSet,
    DossierNotificationsTypes.dossierOwnerRemoved,
    DocumentNotificationsTypes.documentApproved,
] as const;
