/*
 * (c) 2020 Pluto Inc.
 */
package tv.pluto.mongo.entities.timelinedrafts;

import com.google.gson.annotations.JsonAdapter;
import java.time.LocalDateTime;
import java.util.Date;
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.DateAdapter;
import tv.pluto.mongo.utils.json.LocalDateTimeAdapter;

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

  private Boolean featured;

  @JsonAdapter(DateAdapter.class)
  private Date start;

  @JsonAdapter(DateAdapter.class)
  private Date stop;

  @BsonRepresentation(BsonType.OBJECT_ID)
  private String channel;

  @BsonRepresentation(BsonType.OBJECT_ID)
  private String episode;

  @JsonAdapter(DateAdapter.class)
  private Date createdAt;

  @JsonAdapter(LocalDateTimeAdapter.class)
  private LocalDateTime updatedAt;

  // data issue. Can be String or Date
  //    @JsonAdapter(DateAdapter.class)
  //    private Object manualOverrideMarker;

  public Boolean getFeatured() {
    return featured != null && featured;
  }
}
