import { notifyError } from 'src/helpers';
import { Ref } from 'vue';
import { TipoAsignacion } from './AssignmentFormDialog.vue';
import { AsignacionDetalle } from './models';

export function useValidateAssignment(type: Ref<TipoAsignacion>) {
  const validate = (model: AsignacionDetalle) => {
    if (type.value === 'calles') {
      return validateCalles(model);
    }
    if (type.value === 'cuadrantes') {
      return validateCuadrantes(model);
    }
  };

  const validateCalles = (model: AsignacionDetalle) => {
    let message = '';
    if (!model.alcaldia) {
      message = 'Debes seleccionar una alcaldía';
    } else if (!model.colonia) {
      message = 'Debes seleccionar una colonia';
    } else if (!model.calles.length) {
      message = 'Debes seleccionar al menos una calle';
    }
    if (message) {
      notifyError(null, message);
      return false;
    }
    return true;
  };

  const validateCuadrantes = (model: AsignacionDetalle) => {
    let message = '';
    if (!model.cuadrantes.length) {
      message = 'Debes definir al menos un cuadrante';
    }
    if (message) {
      notifyError(null, message);
      return false;
    }
    return true;
  };

  return validate;
}
