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

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.types.ObjectId;
import tv.pluto.mongo.utils.json.DateAdapter;
import tv.pluto.mongo.utils.json.ObjectIdAdapter;

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

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

  @JsonAdapter(ObjectIdAdapter.class)
  private ObjectId id;

  private List<Output> output = Collections.emptyList();
  private String state = ""; // not found in schema

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

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

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

  public String getState() {
    return state == null ? "" : state;
  }
}
