import { RegistrationActionKey } from 'src/common/enum/registration-action-key.enum';
import { RegistrationStatusEnum } from 'src/common/enum/registration-status.enum';
import { PaymentStatusEnum } from 'src/common/enum/payment-status.enum';
import { ROLE_KEYS } from 'src/common/constants/strings-constants';

export const ARCHIVE_BULK_LIMIT = 50;

export const SEAT_TRANSFER_ALLOWED_ROLES: string[] = [
  ROLE_KEYS.ADMIN,
  ROLE_KEYS.OPERATIONAL_MANAGER,
  ROLE_KEYS.SHOBA,
];

export const SEAT_TRANSFER_ALLOWED_PAYMENT_STATUSES: PaymentStatusEnum[] = [
  PaymentStatusEnum.ONLINE_COMPLETED,
  PaymentStatusEnum.OFFLINE_COMPLETED,
];

export const ARCHIVABLE_STATUSES: Partial<Record<RegistrationActionKey, RegistrationStatusEnum[]>> = {
  [RegistrationActionKey.ARCHIVE]: [
    RegistrationStatusEnum.PENDING,
    RegistrationStatusEnum.WAITLISTED,
    RegistrationStatusEnum.REJECTED,
    RegistrationStatusEnum.ON_HOLD,
    RegistrationStatusEnum.CANCELLED,
    RegistrationStatusEnum.SAVE_AS_DRAFT,
  ],
  [RegistrationActionKey.WAITLIST_RELEASE]: [RegistrationStatusEnum.WAITLISTED],
  [RegistrationActionKey.WAITLIST_DENY]: [RegistrationStatusEnum.WAITLISTED],
};

export const ARCHIVE_ALLOWED_ROLES: string[] = [
  ROLE_KEYS.ADMIN,
  ROLE_KEYS.OPERATIONAL_MANAGER,
  ROLE_KEYS.SHOBA,
];

export const WAITLIST_RELEASE_ALLOWED_ROLES: string[] = [
  ROLE_KEYS.ADMIN,
  ROLE_KEYS.OPERATIONAL_MANAGER,
  ROLE_KEYS.SHOBA,
];

export const WAITLIST_RELEASE_BULK_LIMIT = 50;

export const WAITLIST_DENY_ALLOWED_ROLES: string[] = [
  ROLE_KEYS.ADMIN,
  ROLE_KEYS.OPERATIONAL_MANAGER,
  ROLE_KEYS.SHOBA,
];

export const WAITLIST_DENY_BULK_LIMIT = 50;

export const ARCHIVE_BLOCKED_PAYMENT_STATUSES: PaymentStatusEnum[] = [
  PaymentStatusEnum.ONLINE_COMPLETED,
  PaymentStatusEnum.OFFLINE_COMPLETED,
];
