'use strict';

const { createTableExtractor } = require('./extractor-factory');

const SAFE_PROFILE_PERMISSIONS = [
  'autorizadoseguridad', 'puedeeditaralmacen', 'productos', 'meseros', 'usuarios', 'clientes', 'insumos',
  'almacenes', 'conceptosmovtos', 'proveedores', 'ordenesdecompra', 'compras', 'movtosalmacen', 'traspasos',
  'inventariofisico', 'desperdicios', 'reportesadmon', 'reportesventas', 'reportesalmacen', 'nuevo', 'editar',
  'eliminar', 'autorizacioncancelarproductos', 'autorizacioncancelarcompras', 'autorizacioncancelartraspasos',
  'autorizacioncancelarmovtosalmacen', 'autorizacionmodoinventario', 'perfiles_seguridad',
];

const roles = createTableExtractor({
  entityType: 'operator_role',
  table: 'usuariosperfiles',
  idColumns: ['idusuariosperfiles'],
  columns: ['descripcion'],
});

const permissions = createTableExtractor({
  entityType: 'operator_permission',
  table: 'usuariosperfiles',
  idColumns: ['idusuariosperfiles'],
  columns: ['descripcion', ...SAFE_PROFILE_PERMISSIONS],
});

const catalogPermissions = createTableExtractor({
  entityType: 'operator_permission',
  table: 'usuariosperfilescatalogo',
  idColumns: ['idusuariosperfiles', 'catalogo'],
  columns: ['nuevo', 'editar', 'eliminar'],
});

module.exports = { SAFE_PROFILE_PERMISSIONS, roles, permissions, catalogPermissions };
