# Source: src/js/models/bookkeeper/Usage.js

    /* global define */
    define(["jquery",
            "underscore",
            "backbone"],
      function($, _, Backbone) {
        /**
         * @classdesc A Usage Model represents a single instance of a Usage object from the
         * DataONE Bookkeeper data model. A Usage tracks which objects use a portion of a Quota.
         * A Quota can be associated with multiple Usages.
         * See https://github.com/DataONEorg/bookkeeper for documentation on the
         * DataONE Bookkeeper service and data model.
         * @classcategory Models/Bookkeeper
         * @class Usage
         * @name Usage
         * @since 2.14.0
         * @constructor
        */
        var Usage = Backbone.Model.extend(
          /** @lends Usage.prototype */ {

          /**
          * The name of this type of model
          * @type {string}
          */
          type: "Usage",

          /**
          * Default attributes for Usage models
          * @name Usage#defaults
          * @type {Object}
          * @property {string} id   The unique id of this Usage, from Bookkeeper
          * @property {string} object  The name of this type of Bookkeeper object, which will always be "usage"
          * @property {number} quotaId  The id of the Quota object that this Usage is associated with, from Bookkeeper. This is a match to {@link Quota#defaults#id}
          * @property {string} instanceId  The id of the {@link DataONEObject} that makes up this Usage
          * @property {number} quantity  The quantity of the {@link Quota} that this Usage uses, expressed as {@link Quota#defaults#unit}
          * @property {string} status  The status of this Usage
          * @property {string[]} statusOptions  The controlled list of `status` values that can be set on a Usage model
          * @property {string} nodeId The Member Node ID that the object is from
          * @property {DataONEObject} DataONEObject A reference to the DataONEObject that has the id/seriesId of this Usage instanceId
          * @property {SolrResult} SolrResult A reference to the SolrResult that has the id/seriesId of this Usage instanceId
          */
          defaults: function(){
            return {
              id: null,
              object: "usage",
              quotaId: null,
              instanceId: "",
              quantity: 0,
              status: "",
              statusOptions: ["active", "inactive"],
              nodeId: "",
              DataONEObject: null,
              SolrResult: null
            }
          }

      });

      return Usage;
    });