import { QueuePermissions, Consumers } from "../types";

const { READ, WRITE, EXECUTE } = QueuePermissions;
const { MAINFRAME, INTEGRATION_API } = Consumers;

export const QUEUES_INIT: Record<
  string,
  Record<string, { scopes: string[]; init: boolean }>
> = {
  // *********
  // mainframe
  // *********
  case: {
    [MAINFRAME]: {
      scopes: [READ, WRITE, EXECUTE],
      init: true,
    },
    [INTEGRATION_API]: {
      scopes: [WRITE],
      init: true,
    },
  },
  caseInvite: {
    [MAINFRAME]: {
      scopes: [READ, WRITE, EXECUTE],
      init: true,
    },
    [INTEGRATION_API]: {
      scopes: [WRITE],
      init: true,
    },
  },
  caseUpdate: {
    [MAINFRAME]: {
      scopes: [READ, WRITE, EXECUTE],
      init: true,
    },
    [INTEGRATION_API]: {
      scopes: [WRITE],
      init: true,
    },
  },
  lawFirm: {
    [MAINFRAME]: {
      scopes: [READ, WRITE, EXECUTE],
      init: true,
    },
    [INTEGRATION_API]: {
      scopes: [],
      init: false,
    },
  },
  user: {
    [MAINFRAME]: {
      scopes: [READ, WRITE, EXECUTE],
      init: true,
    },
    [INTEGRATION_API]: {
      scopes: [],
      init: false,
    },
  },
  analytic: {
    [MAINFRAME]: {
      scopes: [READ, WRITE, EXECUTE],
      init: true,
    },
    [INTEGRATION_API]: {
      scopes: [],
      init: false,
    },
  },
  email: {
    [MAINFRAME]: {
      scopes: [READ, WRITE, EXECUTE],
      init: true,
    },
    [INTEGRATION_API]: {
      scopes: [WRITE],
      init: true,
    },
  },
  sms: {
    [MAINFRAME]: {
      scopes: [READ, WRITE, EXECUTE],
      init: true,
    },
    [INTEGRATION_API]: {
      scopes: [],
      init: false,
    },
  },
  notification: {
    [MAINFRAME]: {
      scopes: [READ, WRITE, EXECUTE],
      init: true,
    },
    [INTEGRATION_API]: {
      scopes: [WRITE],
      init: true,
    },
  },
  // *********
  // sync
  // *********
  sync_litify: {
    [MAINFRAME]: {
      scopes: [READ, WRITE],
      init: true,
    },
    [INTEGRATION_API]: {
      scopes: [READ, WRITE, EXECUTE],
      init: true,
    },
  },
  sync_filevine: {
    [MAINFRAME]: {
      scopes: [READ, WRITE],
      init: true,
    },
    [INTEGRATION_API]: {
      scopes: [READ, WRITE, EXECUTE],
      init: true,
    },
  },
  sync_captorra: {
    [MAINFRAME]: {
      scopes: [READ, WRITE],
      init: true,
    },
    [INTEGRATION_API]: {
      scopes: [READ, WRITE, EXECUTE],
      init: true,
    },
  },
  sync_casepeer: {
    [MAINFRAME]: {
      scopes: [READ, WRITE],
      init: true,
    },
    [INTEGRATION_API]: {
      scopes: [READ, WRITE, EXECUTE],
      init: true,
    },
  },
  sync_smartadvocate: {
    [MAINFRAME]: {
      scopes: [READ, WRITE],
      init: true,
    },
    [INTEGRATION_API]: {
      scopes: [READ, WRITE, EXECUTE],
      init: true,
    },
  },
  // ****************
  // integration API
  // ****************
};
