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

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

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Transcode {
  @JsonAdapter(DateAdapter.class)
  private Date finishedAt;

  private String externalID = "";
  private String transcoderName = "";
  private String transcodeMode = "";

  @BsonRepresentation(BsonType.OBJECT_ID)
  private String id;

  private List<Output> outputs = Collections.emptyList();

  public String getExternalID() {
    return externalID == null ? "" : externalID;
  }

  public String getTranscoderName() {
    return transcoderName == null ? "" : transcoderName;
  }

  public String getTranscodeMode() {
    return transcodeMode == null ? "" : transcodeMode;
  }

  public String getId() {
    return id == null ? "" : id;
  }
}
