package ru.micord.ervu.journal;

import java.time.LocalDateTime;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import ru.micord.ervu.journal.deserializer.DepartureDateTimeDeserializer;

@JsonIgnoreProperties(ignoreUnknown = true)
public class JournalFileInfo {

  private String fileId; //ИД файла полученный при создании записи о файле в реестр организаций  (в ЕРВУ)
  private String fileName;  // Название файла
  private Integer filePatternCode; // Номер шаблона(Формы)
  private String filePatternName;
  @JsonDeserialize(using = DepartureDateTimeDeserializer.class)
  private LocalDateTime departureDateTime; // Дата-время отправки файла
  private String timeZone; //Таймзона
  private JournalFileStatus fileStatus;
  private SenderInfo senderInfo;
  private Integer rowsCount; //Общее количество записей отправленных в файле
  private Integer rowsSuccess; //Количество записей принятых в файле

  public String getFileId() {
    return fileId;
  }

  public JournalFileInfo setFileId(String fileId) {
    this.fileId = fileId;
    return this;
  }

  public String getFileName() {
    return fileName;
  }

  public JournalFileInfo setFileName(String fileName) {
    this.fileName = fileName;
    return this;
  }

  public Integer getFilePatternCode() {
    return filePatternCode;
  }

  public JournalFileInfo setFilePatternCode(Integer filePatternCode) {
    this.filePatternCode = filePatternCode;
    return this;
  }

  public String getFilePatternName() {
    return filePatternName;
  }

  public JournalFileInfo setFilePatternName(String filePatternName) {
    this.filePatternName = filePatternName;
    return this;
  }

  public LocalDateTime getDepartureDateTime() {
    return departureDateTime;
  }

  public JournalFileInfo setDepartureDateTime(LocalDateTime departureDateTime) {
    this.departureDateTime = departureDateTime;
    return this;
  }

  public String getTimeZone() {
    return timeZone;
  }

  public JournalFileInfo setTimeZone(String timeZone) {
    this.timeZone = timeZone;
    return this;
  }

  public JournalFileStatus getFileStatus() {
    return fileStatus;
  }

  public JournalFileInfo setFileStatus(JournalFileStatus fileStatus) {
    this.fileStatus = fileStatus;
    return this;
  }

  public SenderInfo getSenderInfo() {
    return senderInfo;
  }

  public JournalFileInfo setSenderInfo(SenderInfo senderInfo) {
    this.senderInfo = senderInfo;
    return this;
  }

  public Integer getRowsCount() {
    return rowsCount;
  }

  public JournalFileInfo setRowsCount(Integer rowsCount) {
    this.rowsCount = rowsCount;
    return this;
  }

  public Integer getRowsSuccess() {
    return rowsSuccess;
  }

  public JournalFileInfo setRowsSuccess(Integer rowsSuccess) {
    this.rowsSuccess = rowsSuccess;
    return this;
  }
}
