text: /**
   * Square Connect API
   * Client library for accessing the Square Connect APIs
   *
   * OpenAPI spec version: 2.0
   * Contact: developers@squareup.com
   *
   * NOTE: This class is auto generated by the swagger code generator program.
   * https://github.com/swagger-api/swagger-codegen.git
   *
   * Swagger Codegen version: 2.3.0-SNAPSHOT
   *
   */
  var ApiClient = require('../ApiClient');
  var Money = require('./Money');
  
  
  
  
  /**
   * The CashDrawerShiftSummary model module.
   * @module model/CashDrawerShiftSummary
   */
  
  /**
   * Constructs a new <code>CashDrawerShiftSummary</code>.
   * The summary of a closed cash drawer shift. This model contains only the money counted to start a cash drawer shift, counted at the end of the shift, and the amount that should be in the drawer at shift end based on summing all cash drawer shift events.
   * @alias module:model/CashDrawerShiftSummary
   * @class
   */
  var exports = function() {
    var _this = this;
  
  
  
  
  
  
  
  
  
  
  };
  
  /**
   * Constructs a <code>CashDrawerShiftSummary</code> from a plain JavaScript object, optionally creating a new instance.
   * Copies all relevant properties from <code>data</code> to <code>obj</code> if supplied or a new instance if not.
   * @param {Object} data The plain JavaScript object bearing properties of interest.
   * @param {module:model/CashDrawerShiftSummary} obj Optional instance to populate.
   * @return {module:model/CashDrawerShiftSummary} The populated <code>CashDrawerShiftSummary</code> instance.
   */
  exports.constructFromObject = function(data, obj) {
    if (data) {
      obj = obj || new exports();
  
        if (data.hasOwnProperty('id')) {
        obj['id'] = ApiClient.convertToType(data['id'], 'String');
      }
        if (data.hasOwnProperty('state')) {
        obj['state'] = ApiClient.convertToType(data['state'], 'String');
      }
        if (data.hasOwnProperty('opened_at')) {
        obj['opened_at'] = ApiClient.convertToType(data['opened_at'], 'String');
      }
        if (data.hasOwnProperty('ended_at')) {
        obj['ended_at'] = ApiClient.convertToType(data['ended_at'], 'String');
      }
        if (data.hasOwnProperty('closed_at')) {
        obj['closed_at'] = ApiClient.convertToType(data['closed_at'], 'String');
      }
        if (data.hasOwnProperty('description')) {
        obj['description'] = ApiClient.convertToType(data['description'], 'String');
      }
        if (data.hasOwnProperty('opened_cash_money')) {
        obj['opened_cash_money'] = Money.constructFromObject(data['opened_cash_money']);
      }
        if (data.hasOwnProperty('expected_cash_money')) {
        obj['expected_cash_money'] = Money.constructFromObject(data['expected_cash_money']);
      }
        if (data.hasOwnProperty('closed_cash_money')) {
        obj['closed_cash_money'] = Money.constructFromObject(data['closed_cash_money']);
      }
      }
    return obj;
  }
  
  /**
   * The shift unique ID.
   * @member {String} id
   */
  exports.prototype['id'] = undefined;
  /**
   * The shift current state. See [CashDrawerShiftState](#type-cashdrawershiftstate) for possible values
   * @member {String} state
   */
  exports.prototype['state'] = undefined;
  /**
   * The shift start time in ISO 8601 format.
   * @member {String} opened_at
   */
  exports.prototype['opened_at'] = undefined;
  /**
   * The shift end time in ISO 8601 format.
   * @member {String} ended_at
   */
  exports.prototype['ended_at'] = undefined;
  /**
   * The shift close time in ISO 8601 format.
   * @member {String} closed_at
   */
  exports.prototype['closed_at'] = undefined;
  /**
   * An employee free-text description of a cash drawer shift.
   * @member {String} description
   */
  exports.prototype['description'] = undefined;
  /**
   * The amount of money in the cash drawer at the start of the shift. This must be a positive amount.
   * @member {module:model/Money} opened_cash_money
   */
  exports.prototype['opened_cash_money'] = undefined;
  /**
   * The amount of money that should be in the cash drawer at the end of the shift, based on the cash drawer events on the shift. The amount is correct if all shift employees accurately recorded their cash drawer shift events. Unrecorded events and events with the wrong amount result in an incorrect expected_cash_money amount that can be negative.
   * @member {module:model/Money} expected_cash_money
   */
  exports.prototype['expected_cash_money'] = undefined;
  /**
   * The amount of money found in the cash drawer at the end of the shift by an auditing employee. The amount must be greater than or equal to zero.
   * @member {module:model/Money} closed_cash_money
   */
  exports.prototype['closed_cash_money'] = undefined;
  
  
  
  module.exports = exports;
  
  
  
  