"use strict";

/**
 * A model for a single file in a diff.
 *
 * Model Attributes:
 *     baseFileDiffID (number):
 *         An optional primary key of a :py:class:`~reviewboard.diffviewer.
 *         models.filediff.FileDiff` for generating a diff spanning multiple
 *         commits.
 *
 *     binary (boolean):
 *         Whether or not this is a binary file.
 *
 *     commentCounts (Array of number):
 *         The counts of each comment type.
 *
 *     deleted (boolean):
 *         Whether or not the file was deleted.
 *
 *     depotFilename (string):
 *         The file's path in the repository.
 *
 *     destFilename (string):
 *         The destination file path. This will differ from ``depotFilename``
 *         in the case of a move or rename.
 *
 *     filediff (object):
 *         A serailized :py:class:`~reviewboard.diffviewer.models.filediff.
 *         FileDiff` representing this file.
 *
 *     index (number):
 *         The file's index in the diff.
 *
 *     interfilediff (object):
 *         An optional serialized :py:class:`~reviewboard.diffviewer.models.
 *         filediff.FileDiff` for interidffing.
 *
 *     newfile (boolean):
 *         Whether or not the file is newly created.
 *
 *     public (boolean):
 *         Whether the diff has been published or not.
 *
 *     revision (number):
 *         The base revision of the file.
 */
RB.DiffFile = Backbone.Model.extend({
  defaults: {
    baseFileDiffID: null,
    binary: false,
    commentCounts: null,
    deleted: false,
    depotFilename: null,
    destFilename: null,
    destRevision: null,
    filediff: null,
    index: null,
    interfilediff: null,
    newfile: false,
    forceInterdiff: null,
    forceInterdiffRevision: null,
    public: false
  },
  /**
   * Parse the response into model attributes.
   *
   * Args:
   *     rsp (object):
   *         The response from the server.
   *
   * Returns:
   *     object:
   *     The model attributes.
   */
  parse(rsp) {
    return {
      binary: rsp.binary,
      baseFileDiffID: rsp.base_filediff_id,
      commentCounts: rsp.comment_counts,
      deleted: rsp.deleted,
      depotFilename: rsp.depot_filename,
      destFilename: rsp.dest_filename,
      destRevision: rsp.dest_revision,
      filediff: rsp.filediff,
      id: rsp.id,
      index: rsp.index,
      interfilediff: rsp.interfilediff,
      newfile: rsp.newfile,
      revision: rsp.revision,
      forceInterdiff: rsp.force_interdiff,
      forceInterdiffRevision: rsp.interdiff_revision,
      public: rsp.public
    };
  }
});

//# sourceMappingURL=diffFileModel.js.map