package tv.pluto.mongo.entities.timelines.populated_timelines;

import com.google.gson.annotations.JsonAdapter;
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;

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

  @JsonAdapter(DateAdapter.class)
  private Date start;

  @JsonAdapter(DateAdapter.class)
  private Date stop;

  private Episode episode;
  private Boolean allClipsReady;
  private Boolean isAvailableNow;
  private Boolean hasRegionAvailability;
  private Boolean providerIsJwOnly;
  // TODO https://plutotv.atlassian.net/browse/IP-1773
  //    private Boolean providerIsJwMixed;
  private Boolean hasEmptySources;
  //    private Boolean hasLinearAvailabilityWindows;
  //    private Boolean hasLinearAvailabilityWindowForDate;
  private Boolean hasAdPods;
  private Boolean fulfilled;

  //    private String author;
  @JsonAdapter(DateAdapter.class)
  private Date manualOverrideMarker;
}
