// src/validators/usuarioInsignias.validators.js
const { body, param, query } = require('express-validator');

const grantValidator = [
  body('id_usuario').isInt({ gt: 0 }).withMessage('id_usuario > 0'),
  body('id_insignia').isInt({ gt: 0 }).withMessage('id_insignia > 0'),
  body('fecha_otorgada').optional().isISO8601().withMessage('fecha_otorgada inválida (ISO8601)'),
  body('skip_check').optional().isBoolean(), // para saltar validación por criterio
];

const revokeValidator = [
  param('id_usuario').isInt({ gt: 0 }),
  param('id_insignia').isInt({ gt: 0 }),
];

const listValidator = [
  query('user_id').optional().isInt({ gt: 0 }),
  query('insignia_id').optional().isInt({ gt: 0 }),
];

const userParamValidator = [ param('id_usuario').isInt({ gt: 0 }) ];

const checkAndGrantValidator = [
  body('id_usuario').isInt({ gt: 0 }),
  body('id_insignia').isInt({ gt: 0 }),
];

module.exports = {
  grantValidator,
  revokeValidator,
  listValidator,
  userParamValidator,
  checkAndGrantValidator,
};
