BaseSwaggerSchema.java
package fr.avenirsesr.portfolio.common.openapi.infrastructure.adapter;
import fr.avenirsesr.portfolio.common.data.domain.model.enums.ESortField;
import fr.avenirsesr.portfolio.common.data.domain.model.enums.ESortOrder;
import fr.avenirsesr.portfolio.common.error.domain.model.enums.EErrorCode;
import fr.avenirsesr.portfolio.common.language.domain.model.enums.ELanguage;
import fr.avenirsesr.portfolio.common.temporal.domain.model.enums.EDurationUnit;
import io.swagger.v3.oas.models.media.Schema;
import io.swagger.v3.oas.models.media.StringSchema;
import java.util.Arrays;
public interface BaseSwaggerSchema {
Schema<String> errorCodeSchema =
new StringSchema()
.name("EErrorCode")
._enum(Arrays.stream(EErrorCode.values()).map(Enum::name).toList())
.description("Enum for error codes");
Schema<String> languageSchema =
new StringSchema()
.name("ELanguage")
._enum(Arrays.stream(ELanguage.values()).map(Enum::name).toList())
.description("Enum for languages");
Schema<String> sortFieldSchema =
new StringSchema()
.name("ESortField")
._enum(Arrays.stream(ESortField.values()).map(Enum::name).toList())
.description("Enum for sort fields");
Schema<String> sortOrderSchema =
new StringSchema()
.name("ESortOrder")
._enum(Arrays.stream(ESortOrder.values()).map(Enum::name).toList())
.description("Enum for sort orders");
Schema<String> durationUnitSchema =
new StringSchema()
.name("EDurationUnit")
._enum(Arrays.stream(EDurationUnit.values()).map(Enum::name).toList())
.description("Enum for duration units");
static Schema<String> createEnumSchema(Class<? extends Enum<?>> enumClass, String description) {
return new StringSchema()
.name(enumClass.getSimpleName())
._enum(Arrays.stream(enumClass.getEnumConstants()).map(Enum::name).toList())
.description(description);
}
}