package com.airlock.iam.common.infrastructure.jackson;

import com.airlock.iam.base.misc.date.Dates;
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.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;

public class InstantSerializer extends JsonSerializer<Instant> {
   public void serialize(Instant instant, JsonGenerator gen, SerializerProvider serializers) throws IOException {
      ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(instant, ZoneId.systemDefault());
      gen.writeString(Dates.toString(zonedDateTime));
   }

   public Class<Instant> handledType() {
      return Instant.class;
   }
}
