import { ValidatorFn } from '@angular/forms';

export function fiscalIdValidator(): ValidatorFn {
  return (control) => {
    if (control.value === null || control.value === undefined || control.value === '') {
      return null;
    }

    if (control.value.length < 6) {
      return {
        minlength: {
          requiredLength: 6,
          actualLength: control.value.length,
        },
      };
    }

    const pattern = /^[a-zA-Z0-9]*$/;

    if (!pattern.test(control.value)) {
      return {
        invalidFiscalId: {
          value: control.value,
          message: 'شناسه مالی فقط می‌تواند شامل حروف انگلیسی و اعداد باشد',
        },
      };
    }
    return null;
  };
}
