mirror of
https://git.imnavajas.es/jjimenez/erp-imprimelibros.git
synced 2026-01-13 08:58:48 +00:00
36 lines
1.2 KiB
Java
36 lines
1.2 KiB
Java
package com.imprimelibros.erp.shared.validation;
|
|
|
|
import static java.lang.annotation.ElementType.TYPE;
|
|
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
|
|
|
import java.lang.annotation.*;
|
|
|
|
import jakarta.validation.Constraint;
|
|
import jakarta.validation.Payload;
|
|
|
|
@Documented
|
|
@Target(TYPE)
|
|
@Retention(RUNTIME)
|
|
@Constraint(validatedBy = NoRangeOverlapValidator.class)
|
|
public @interface NoRangeOverlap {
|
|
|
|
// Campos obligatorios
|
|
String min(); // nombre del campo min (Integer/Long/etc.)
|
|
String max(); // nombre del campo max
|
|
|
|
// Campos opcionales
|
|
String id() default "id"; // nombre del campo ID (para excluir self en update)
|
|
String[] partitionBy() default {}; // ej. {"tipoEncuadernacion","tipoCubierta"}
|
|
|
|
// Soft delete opcional
|
|
String deletedFlag() default ""; // ej. "deleted" (si vacío, no se aplica filtro)
|
|
boolean deletedActiveValue() default false; // qué valor significa "activo" (normalmente false)
|
|
|
|
// Mensajes
|
|
String message() default "{validation.range.overlaps}";
|
|
String invalidRangeMessage() default "{validation.range.invalid}";
|
|
|
|
Class<?>[] groups() default {};
|
|
Class<? extends Payload>[] payload() default {};
|
|
}
|