Source code for synapse.models.biz

import synapse.lib.module as s_module

'''
Model elements related to sales / bizdev / procurement
'''

[docs] class BizModule(s_module.CoreModule):
[docs] def getModelDefs(self): modl = { 'types': ( ('biz:rfp', ('guid', {}), { 'doc': 'An RFP (Request for Proposal) soliciting proposals.', }), ('biz:deal', ('guid', {}), { 'doc': 'A sales or procurement effort in pursuit of a purchase.', }), ('biz:stake', ('guid', {}), { 'doc': 'A stake or partial ownership in a company.', }), ('biz:listing', ('guid', {}), { 'doc': 'A product or service being listed for sale at a given price by a specific seller.', }), ('biz:bundle', ('guid', {}), { 'doc': 'A bundle allows construction of products which bundle instances of other products.', }), ('biz:product', ('guid', {}), { 'doc': 'A product which is available for purchase.', }), ('biz:service', ('guid', {}), { 'doc': 'A service which is performed by a specific organization.', }), ('biz:service:type:taxonomy', ('taxonomy', {}), { 'doc': 'A taxonomy of service offering types.', 'interfaces': ('meta:taxonomy',), }), ('biz:dealstatus', ('taxonomy', {}), { 'doc': 'A deal/rfp status taxonomy.', 'interfaces': ('meta:taxonomy',), }), ('biz:dealtype', ('taxonomy', {}), { 'doc': 'A deal type taxonomy.', 'interfaces': ('meta:taxonomy',), }), ('biz:prodtype', ('taxonomy', {}), { 'doc': 'A product type taxonomy.', 'interfaces': ('meta:taxonomy',), }), ), 'forms': ( ('biz:dealtype', {}, ()), ('biz:prodtype', {}, ()), ('biz:dealstatus', {}, ()), ('biz:rfp', {}, ( ('ext:id', ('str', {}), { 'doc': 'An externally specified identifier for the RFP.', }), ('title', ('str', {}), { 'doc': 'The title of the RFP.', }), ('summary', ('str', {}), { 'disp': {'hint': 'text'}, 'doc': 'A brief summary of the RFP.', }), ('status', ('biz:dealstatus', {}), { 'disp': {'hint': 'enum'}, 'doc': 'The status of the RFP.', }), ('url', ('inet:url', {}), { 'doc': 'The official URL for the RFP.', }), ('file', ('file:bytes', {}), { 'doc': 'The RFP document.', }), ('posted', ('time', {}), { 'doc': 'The date/time that the RFP was posted.', }), ('quesdue', ('time', {}), { 'doc': 'The date/time that questions are due.', }), ('propdue', ('time', {}), { 'doc': 'The date/time that proposals are due.', }), ('contact', ('ps:contact', {}), { 'doc': 'The contact information given for the org requesting offers.', }), ('purchases', ('array', {'type': 'econ:purchase', 'uniq': True, 'sorted': True}), { 'doc': 'Any known purchases that resulted from the RFP.', }), ('requirements', ('array', {'type': 'ou:goal', 'uniq': True, 'sorted': True}), {}), )), ('biz:deal', {}, ( ('id', ('str', {'strip': True}), { 'doc': 'An identifier for the deal.', }), ('title', ('str', {}), { 'doc': 'A title for the deal.', }), ('type', ('biz:dealtype', {}), { 'doc': 'The type of deal.', 'disp': {'hint': 'taxonomy'}, }), ('status', ('biz:dealstatus', {}), { 'doc': 'The status of the deal.', 'disp': {'hint': 'taxonomy'}, }), ('updated', ('time', {}), { 'doc': 'The last time the deal had a significant update.', }), ('contacted', ('time', {}), { 'doc': 'The last time the contacts communicated about the deal.', }), ('rfp', ('biz:rfp', {}), { 'doc': 'The RFP that the deal is in response to.', }), ('buyer', ('ps:contact', {}), { 'doc': 'The primary contact information for the buyer.', }), ('buyer:org', ('ou:org', {}), { 'doc': 'The buyer org.', }), ('buyer:orgname', ('ou:name', {}), { 'doc': 'The reported ou:name of the buyer org.', }), ('buyer:orgfqdn', ('inet:fqdn', {}), { 'doc': 'The reported inet:fqdn of the buyer org.', }), ('seller', ('ps:contact', {}), { 'doc': 'The primary contact information for the seller.', }), ('seller:org', ('ou:org', {}), { 'doc': 'The seller org.', }), ('seller:orgname', ('ou:name', {}), { 'doc': 'The reported ou:name of the seller org.', }), ('seller:orgfqdn', ('inet:fqdn', {}), { 'doc': 'The reported inet:fqdn of the seller org.', }), ('currency', ('econ:currency', {}), { 'doc': 'The currency of econ:price values associated with the deal.', }), ('buyer:budget', ('econ:price', {}), { 'doc': 'The buyers budget for the eventual purchase.', }), ('buyer:deadline', ('time', {}), { 'doc': 'When the buyer intends to make a decision.', }), ('offer:price', ('econ:price', {}), { 'doc': 'The total price of the offered products.', }), ('offer:expires', ('time', {}), { 'doc': 'When the offer expires.', }), ('purchase', ('econ:purchase', {}), { 'doc': 'Records a purchase resulting from the deal.', }), )), ('biz:bundle', {}, ( ('count', ('int', {}), { 'doc': 'The number of instances of the product or service included in the bundle.', }), ('price', ('econ:price', {}), { 'doc': 'The price of the bundle.', }), ('product', ('biz:product', {}), { 'doc': 'The product included in the bundle.', }), ('service', ('biz:service', {}), { 'doc': 'The service included in the bundle.', }), ('deal', ('biz:deal', {}), { 'deprecated': True, 'doc': 'Deprecated. Please use econ:receipt:item for instances of bundles being sold.', }), ('purchase', ('econ:purchase', {}), { 'deprecated': True, 'doc': 'Deprecated. Please use econ:receipt:item for instances of bundles being sold.', }), )), ('biz:listing', {}, ( ('seller', ('ps:contact', {}), { 'doc': 'The contact information for the seller.'}), ('product', ('biz:product', {}), { 'doc': 'The product being offered.'}), ('service', ('biz:service', {}), { 'doc': 'The service being offered.'}), ('current', ('bool', {}), { 'doc': 'Set to true if the offer is still current.'}), ('time', ('time', {}), { 'doc': 'The first known offering of this product/service by the organization for the asking price.'}), ('expires', ('time', {}), { 'doc': 'Set if the offer has a known expiration date.'}), ('price', ('econ:price', {}), { 'doc': 'The asking price of the product or service.'}), ('currency', ('econ:currency', {}), { 'doc': 'The currency of the asking price.'}), ('count:total', ('int', {'min': 0}), { 'doc': 'The number of instances for sale.'}), ('count:remaining', ('int', {'min': 0}), { 'doc': 'The current remaining number of instances for sale.'}), )), ('biz:service', {}, ( ('provider', ('ps:contact', {}), { 'doc': 'The contact info of the entity which performs the service.'}), ('name', ('str', {'lower': True, 'onespace': True}), { 'doc': 'The name of the service being performed.'}), ('summary', ('str', {}), { 'disp': {'hint': 'text'}, 'doc': 'A brief summary of the service.'}), ('type', ('biz:service:type:taxonomy', {}), { 'doc': 'A taxonomy of service types.'}), ('launched', ('time', {}), { 'doc': 'The time when the operator first made the service available.'}), # TODO: billing types (fixed, hourly, subscription, etc) )), ('biz:product', {}, ( ('name', ('str', {}), { 'doc': 'The name of the product.', }), ('type', ('biz:prodtype', {}), { 'doc': 'The type of product.', 'disp': {'hint': 'taxonomy'}, }), # TODO ('upc', ('biz:upc', {}), {}), ('summary', ('str', {}), { 'doc': 'A brief summary of the product.', 'disp': {'hint': 'text'}, }), ('maker', ('ps:contact', {}), { 'doc': 'A contact for the maker of the product.', }), ('madeby:org', ('ou:org', {}), { 'deprecated': True, 'doc': 'Deprecated. Please use biz:product:maker.', }), ('madeby:orgname', ('ou:name', {}), { 'deprecated': True, 'doc': 'Deprecated. Please use biz:product:maker.', }), ('madeby:orgfqdn', ('inet:fqdn', {}), { 'deprecated': True, 'doc': 'Deprecated. Please use biz:product:maker.', }), ('price:retail', ('econ:price', {}), { 'doc': 'The MSRP price of the product.', }), ('price:bottom', ('econ:price', {}), { 'doc': 'The minimum offered or observed price of the product.', }), ('price:currency', ('econ:currency', {}), { 'doc': 'The currency of the retail and bottom price properties.', }), ('bundles', ('array', {'type': 'biz:bundle', 'uniq': True, 'sorted': True}), { 'doc': 'An array of bundles included with the product.', }), )), ('biz:stake', {}, ( ('vitals', ('ou:vitals', {}), { 'doc': 'The ou:vitals snapshot this stake is part of.', }), ('org', ('ou:org', {}), { 'doc': 'The resolved org.', }), ('orgname', ('ou:name', {}), { 'doc': 'The org name as reported by the source of the vitals.', }), ('orgfqdn', ('inet:fqdn', {}), { 'doc': 'The org FQDN as reported by the source of the vitals.', }), ('name', ('str', {}), { 'doc': 'An arbitrary name for this stake. Can be non-contact like "pool".', }), ('asof', ('time', {}), { 'doc': 'The time the stake is being measured. Likely as part of an ou:vitals.', }), ('shares', ('int', {}), { 'doc': 'The number of shares represented by the stake.', }), ('invested', ('econ:price', {}), { 'doc': 'The amount of money invested in the cap table iteration.', }), ('value', ('econ:price', {}), { 'doc': 'The monetary value of the stake.', }), ('percent', ('hugenum', {}), { 'doc': 'The percentage ownership represented by this stake.', }), ('owner', ('ps:contact', {}), { 'doc': 'Contact information of the owner of the stake.', }), ('purchase', ('econ:purchase', {}), { 'doc': 'The purchase event for the stake.', }), )), ), } name = 'biz' return ((name, modl),)