Source: fedramp.models/agency.factory.js

(function () {
    'use strict';

    angular
        .module('fedramp.models')
        .factory('Agency', AgencyFactory);

    AgencyFactory.$inject = [];

    function AgencyFactory () {
        /**
         * The agency
         * @constructor
         * @memberof Models
         */
        function Agency (options) {
            // Scope `this` to self
            var self = this;

            /**
             * The model type
             * @member {string}
             * @memberof Models.Agency
             */
            self.type = 'agency';

            /**
             * The agency name
             * @member {string}
             * @memberof Models.Agency
             */
            self.name = '';

            /**
             * The number of times the agency was used
             * @member {integer}
             * @memberof Models.Agency
             */
            self.reuses = 0;

            /**
             * The number of times the agency was a sponsoring entity
             * @member {integer}
             * @memberof Models.Agency
             */
            self.sponsored = 0;

            /**
             * The number of times the agency was an authorizing entity
             * @member {integer}
             * @memberof Models.Agency
             */
            self.authorized = 0;

            /**
             * The agency point of contact name
             * @member {string}
             * @memberof Models.Agency
             */
            self.pocName = '';

            /**
             * The agency point of contact email
             * @member {string}
             * @memberof Models.Agency
             */
            self.pocEmail = '';

            /**
             * The agency logo
             * @member {string}
             * @memberof Models.Agency
             */
            self.logo = '';

            /**
             * Providers associated to the agency
             * @member {array}
             * @memberof Models.Agency
             */
            self.providers = [];

            /**
             * Products associated to the agency
             * @member {array}
             * @memberof Models.Agency
             */
            self.products = [];

            /**
             * Assessors associated to the agency
             * @member {array}
             * @memberof Models.Agency
             */
            self.assessors = [];

            /**
             * Text used to describe primary metric label
             * @member {string}
             * @memberof Models.Agency
             */
            self.useLabel = 'Products Used';
        }

        return Agency;
    }
})();