Use explicit @Query for findByUidAndOrganization_Id to avoid deployment/startup issues with derived query
Commerce repository and service updates (EngagementRepository, OrderRepository, CommerceService)
Add EmbNameFull.formatFull(), fix @Builder warnings, repo method renames
Replace formatFull() with formatEmbNameFull() - EmbNameFull has no formatFull method
Server-side order filtering (status, dateFrom, dateTo), CommerceService overload
Phase 1-3 foundation - RETAIL, MORTGAGE, RENTAL assets
Phase 1 RETAIL: - CommitmentContextType.SALE, processOrderPaid: Commitment, Transaction, InventoryAllocation, FulfillmentOrder - checkInventoryForOrder on creat...
Use Uid instead of Id for BaseEntity-derived relations
- FulfillmentOrderRepository: findBySourceCommitmentId -> findBySourceCommitmentUid (Commitment uses uid) - TransactionRepository: findByOrderId -> findByOrderU...
Add ordering (createdAt DESC) and date range filter
- EngagementRepository: OrderByDateCreatedDesc on all find methods - CommerceService: dateFrom/dateTo params, in-memory date filter - Engagements API now suppor...
Add EngagementDomainTypeConverter for VENDOR→SERVICE, no manual SQL
- JPA AttributeConverter maps legacy VENDOR to SERVICE when reading from DB - Applied to Engagement.domain and OrgPOSConfig.enabledDomains - Removes need for ma...
Replace pos beans with commerce package
- Add commerce package (Order, Intent, Offering, InventoryItem, InventoryPool, etc.) - Add CommerceService replacing POSService, RetailProductService, RetailInv...
Enterprise validation in POSService
- createRetailOrder: null check on request - createLineItem: null check, quantity > 0, unitPrice >= 0 validation
Add POS/inventory domain entities, DTOs, repos and services
- Add POS beans (retail, rental, mortgage, subscription, vendor) - Add RetailProduct, RetailInventoryStock, RetailOrder, MortgageApp DTOs - Add RetailProductSer...
Populate vendorProduct relationship when fetching leads
Update getLeadsByOrganizationId() to populate the @Transient vendorProduct field for each lead that has a vendorProductId. This ensures the vendor and product d...
Add status, subStatus, source, and dateCreated fields
- Added status, subStatus, source, dateCreated, and isActive fields to Lead entity - Updated LeadDTO with frontend-compatible fields (status, subStatus, source,...
Refactor Lead assignment from String to Employee reference
- Changed Lead.assignedUser (String) to Lead.assignedEmployee (Employee) - Added LeadAssignment entity to track assignment history - Added LeadAssignmentType en...
Add phone extension support to CreateLeadRequest, UpdateLeadRequest, and LeadDTO
Resolve MultipleBagFetchException and fix custom form persistence
- Simplified CustomFormRepository query to avoid multiple bag fetches - Fixed LeadMarketService to properly save and load custom form associations - Use saveAnd...
Properly save and load custom form associations for markets
- Removed repository delete, now using JPA orphan removal for cleanup - Initialize lazy marketCustomForms collection before clearing - Ensure collections are in...
Resolve MultipleBagFetchException in CustomFormRepository
- Simplified findByIdAndOrganizationId query to avoid fetching multiple bags - Removed LEFT JOIN FETCH for stacks and fields in same query - Collections are now...
Resolve MultipleBagFetchException by using transactional lazy loading
- LeadMarketRepository: Reverted to simple query without multiple JOIN FETCH - LeadMarketService: Added @Transactional(readOnly=true) to getMarketById with expl...
Add eager loading for repository queries to fix lazy loading issues
- CustomFormRepository: Added LEFT JOIN FETCH for stacks and fields in findByIdAndOrganizationId - LeadMarketRepository: Added LEFT JOIN FETCH for marketCustomF...
Add salesSubType field to LeadMarketDTO for mortgage field detection
- Added salesSubType field to distinguish between parent SaleType and sub-types - When SaleType has a parent (e.g., RESIDENTIAL_MORTGAGE), salesType becomes the...
Add market-based lead fields and custom form data support
- Add marketId field to Lead entity - Create LeadCustomFormData entity with JSONB column for custom form data - Add LeadCustomFormDataRepository - Update LeadDT...
Add parent-child hierarchy support to SaleType enum
- Added RESIDENTIAL_MORTGAGE, COMMERCIAL_MORTGAGE, SERVICE_CUSTOM as children of SERVICE - Added PRODUCT_CUSTOM as child of PRODUCT - Added helper methods: getP...
Add lead import DTOs (LeadImportRequest, LeadImportResponse) for file-based lead imports
Change NATS DeliverPolicy from All to New to prevent message replay - only deliver new messages after subscription
Add support for unique consumer names in NATS subscriptions - Add overloaded subscribe() method that accepts custom consumer name - Allows multiple chat sessions to have independent NATS consumers - Fixes issue where all sessions shared same consumer causing message delivery conflicts
Add custom forms support to markets - Add MarketCustomForm entity for many-to-many relationship with ordering - Update LeadMarket to include customForms relationship - Add MarketCustomFormRepository - Update LeadMarketDTO to include custom forms - Update request DTOs to support custom form associations - Add service methods for managing custom form associations
Add null checks and validation in CustomFormService createForm/updateForm
- Add null/empty checks for fieldId before calling trim().toLowerCase() to prevent NullPointerException - Add comprehensive validation for required fields (fiel...
Add custom forms feature with form builder support
- Add FormFieldType enum with 12 field types (TEXT, TEXT_AREA, MONEY, DATE, DATE_TIME, DROPDOWN, RADIO, LIST, CHECKBOX, ADDRESS, US_SSN, US_STATE) - Add entity ...
Add null safety checks in LeadVendorDTO to prevent null title errors
Change name to title and add description field to LeadVendor and LeadVendorProduct
Add full CRUD support for LeadVendor and LeadVendorProduct with String IDs
Change LeadMarketDTO IDs to String to prevent JavaScript precision loss
Add explicit @Query annotations to LeadMarketRepository methods for proper organization.id resolution
Change salesType to String in LeadMarketDTO to match frontend expectations
Change salesType from SaleType enum to String in request DTOs to match frontend
Add LeadMarket entity, repository, service, and DTOs for CRM markets management
Add streamGuid field to Organization for organization-wide media feed
Add LIKE enum value to MediaBlockReasonType for social media likes
Add streamGuid to Lead and support lead-specific media streams
- Added streamGuid field to Lead.java to reference MediaSession stream - Updated MediaSessionPost to support optional lead association - Updated ***************...
Add MediaObjReportRepository and update media services for social feed
- Add MediaObjReportRepository for like/reaction system - Update MediaService with createPostSession and NATS event publishing - Update MediaSessionRepository w...
Update EmploymentStatusType to use STRING enum storage instead of ID
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
