package tv.pluto.mongo.entities.ageranges;

import com.google.gson.annotations.JsonAdapter;
import java.time.LocalDateTime;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.bson.BsonType;
import org.bson.codecs.pojo.annotations.BsonRepresentation;
import tv.pluto.mongo.utils.json.LocalDateTimeAdapter;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class AgeRanges {
  @BsonRepresentation(BsonType.OBJECT_ID)
  private String id;

  private String name = "";
  private String displayName = "";
  private String countryCode = "";
  private Integer min;
  private Integer max;

  @JsonAdapter(LocalDateTimeAdapter.class)
  private LocalDateTime createdAt;

  @JsonAdapter(LocalDateTimeAdapter.class)
  private LocalDateTime updatedAt;

  public Integer getMin() {
    return min == null ? 0 : min;
  }

  public Integer getMax() {
    return max == null ? 0 : max;
  }

  public String getName() {
    return name == null ? "" : name;
  }

  public String getDisplayName() {
    return displayName == null ? "" : displayName;
  }

  public String getCountryCode() {
    return countryCode == null ? "" : countryCode;
  }

  public LocalDateTime getUpdatedAt() {
    return updatedAt;
  }

  public String getUpdatedAtString() {
    return updatedAt.toString() + "Z";
  }
}
