package net.gepafin.tendermanagement.util; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; import java.io.IOException; import java.time.LocalTime; import java.time.format.DateTimeFormatter; public class DynamicLocalTimeSerializer extends JsonSerializer { private static final DateTimeFormatter HH_MM_FORMAT = DateTimeFormatter.ofPattern("HH:mm"); private static final DateTimeFormatter HH_MM_SS_FORMAT = DateTimeFormatter.ofPattern("HH:mm:ss"); @Override public void serialize(LocalTime time, JsonGenerator gen, SerializerProvider serializers) throws IOException { // Use HH:mm if seconds are 00, otherwise use HH:mm:ss String formattedTime = (time.getSecond() == 0) ? time.format(HH_MM_FORMAT) : time.format(HH_MM_SS_FORMAT); gen.writeString(formattedTime); } }