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

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

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

  @JsonAdapter(LocalDateTimeAdapter.class)
  private LocalDateTime createdAt;

  @JsonAdapter(LocalDateTimeAdapter.class)
  private LocalDateTime updatedAt;

  private Integer startAt;
  private String url = "";
  private List<Transcode> transcodes = Collections.emptyList();
  private Origin origin;
  private Double duration;
  private String contentStatus = "";
  private List<Source> sources = Collections.emptyList();

  public String getUrl() {
    return url == null ? "" : url;
  }

  public String getContentStatus() {
    return contentStatus == null ? "" : contentStatus;
  }

  public Integer getStartAt() {
    return startAt == null ? 0 : startAt;
  }

  public Double getDuration() {
    return duration == null ? 0 : duration;
  }
}
