Package net.pricefx.domain


package net.pricefx.domain
Domain objects that Pricefx logics receive from and pass to Groovy API calls. The package holds the pricing document types (Pricelist, PriceGrid, ManualPricelist, Simulation, CalculatedFieldSet), document line items (QuoteLineItem, ContractLineItem, RebateAgreementLineItem, RebateRecordSet), master and configuration data (Customer, CustomerAssignment, CustomerGroup, ProductGroup, SellerGroup, LookupTable, User, UserGroup, AttachedDocument), Analytics helper objects (DMTable, DMField, DMCalendar, DMDataSlice), and the enums that describe object state (ApprovalState, CalculationStatus).

Logics do not construct or persist these entities. Only a few Groovy API functions return the domain objects directly, such as api.findLookupTable(), api.findPricelists() or api.findCustomersInGroup(); general purpose reading functions such as api.find() return their Map representation. The typed objects also appear as parameter types such as CustomerGroup and ProductGroup, and as type parameters of the summary queries. Model logics pass Analytics table field definitions as Maps conforming to the DMField structure, which is why that type is documented here. The methods of the domain classes are generally not useful to a logic and should not be called; the exceptions are ProductGroup, CustomerGroup and SellerGroup, and reading identifying properties such as id and typedId. The Groovy sandbox allows only a limited subset of the methods in any case.

Conventions: every persisted object carries a typedId, the numeric identifier joined with the entity type code, for example 1234.PL for a Pricelist. Customer-defined extension columns appear as fields named attribute1 to attribute30. Group objects such as CustomerGroup and ProductGroup are embedded filter definitions rather than standalone entities.