Add Program + OrgProgramOverride entities (catalog + per-org overlay)
Revert "feat(los): introduce LOS entity package marker"
This reverts commit ****************
Add LOS enum types (status, role, persona, program, lender model)
Micrometer counters/timer for transitions, conditions, webhooks
LoanPipelineService increments los_transitions_total{from,to} per successful transition. LoanConditionService increments **************** for cleared/waived. We...
Hash-chain LoanPipelineMilestone rows for tamper detection
LoanPipelineMilestone gains PREVIOUS_MILESTONE_SHA256. On every transition, LoanPipelineService computes the SHA-256 of the previous milestone's canonical form ...
HMDA LAR pre-export validation
New HmdaLarValidationIssue DTO (ERROR/WARN severity, field name, message). HmdaLarService now annotates each row in buildLar() with a list of issues covering th...
PreTransitionLint advisory for APPLICATION_TAKEN
New @Transactional(readOnly) method on LoanPipelineService returning a list of human-readable warnings for the APPLICATION_TAKEN target: missing SSN (last 4), D...
Collapse pipeline kanban N+1 to a single grouped count query
listForOrganization() used to issue one condition-fetch per loan (201 queries at 200 loans). Now a single grouped JPQL aggregate keyed by loanFile.uid projects ...
Durable JetStream consumer, executor isolation, timestamped signatures
Three changes bundled because they all live in WebhookDeliveryWorker and make sense together: 1. Switch from core NATS dispatcher to a JetStream durable push ...
Optimistic-lock LoanFile.status to prevent racing transitions
Concurrent "Advance" clicks could both write milestones. Adds @Version to LoanFile and an explicit flush in LoanPipelineService.transition so the OptimisticLock...
Name resolution, REO liens, TRID holidays, webhook delivery, ESignTemplate link
Cross-cutting polish pass across all LOS sub-projects: Member display name resolution (MemberNameResolver): - Single shared resolver service that follows the s...
Pricing snapshots, rate locks, AUS findings, disclosures, TRID timers, HMDA LAR
Sub-projects 5, 6, and 7 backend shipped together: Sub-project 5 (pricing & locks): - LoanPricingSnapshot — append-only quotes (program, investor, rate, APR,...
Pipeline state machine, conditions, templates, NATS events
Sub-project 4 (LOS pipeline & workflow) backend: - New enum LoanConditionStatus (OPEN/CLEARED/WAIVED) - New entities: LoanPipelineMilestone (append-only transi...
URLA service layer (repos, DTOs, services, lookups)
Adds the full backend service layer for the URLA package introduced in the previous commit: repos/applications/ 20 JpaRepositories scoped per entity ...
URLA 2021 schema foundation for residential mortgage
Refactor AppMortgage into a full URLA package root supporting multiple 1003s per loan with up to two borrowers per pair (married/joint or unmarried). Replaces t...
Guard admin-essential rights + re-seed roles on template edit
HIGH: **************** now refuses to persist a NUKE or FORCE_NUKE setting on any of the ADMINISTRATOR template's admin-essential rights (CONFIGURE_SYSTEM, MANA...
Revert "feat(member): **************** for idempotent role promotion"
This reverts commit ****************
**************** for idempotent role promotion
Adds a public, transactional ensureRoleAssigned(memberId, roleId) that: - No-ops if the role is already on the member. - Looks up the OrgRole and saves a ne...
Chunked recalc + cross-model fan-out + typeTemplate non-force fallback
Adds three things needed for template edits to actually reach existing members without forcing a logout/login cycle: 1. **************** — walks every org po...
Drop CountryTypeConverter from EmbAddress.country
The converter writes the enum name (e.g. "UNITED_STATES") as a String, but every table embedding EmbAddress (orgs, users, members, user_addresses, account_addre...
Add attachments and event fields to ChatMessageDto; ignore unknown fields
ChatMessageDto was missing `attachments`, `readMemberId`, `msgIdLastViewed`, `dateLastViewed`, `addedMemberId`, `objImgId`, `transitMemberId`, and `isJoin` fiel...
Split findChatSessionsForMemberPaged into First/After to fix empty Chats tab
HAVING CAST(null AS TIMESTAMP) IS NULL did not evaluate as expected in CockroachDB,
Switch MediaObjTransit to @MapsId derived-identity pattern
@IdClass combined with @Id @OneToOne is not reliably supported in Hibernate 6 — JpaRepository<MediaObjTransit, UUID> initialization fails with "does not define ...
Add @IdClass for MediaObjTransit so Spring Data JPA can expose its derived ID
Spring Data's metamodel requires @IdClass for entities whose primary key is a @Id @OneToOne derived identifier. Without it, JpaRepository<MediaObjTransit, UUID>...
Add countUnreadAfter(guid, memberId, since) to MediaObjRepository
Needed by paged chat-list endpoint to compute per-session unread counts when ownLastViewedAt is a LocalDateTime pointer rather than a message UUID.
Add @PrePersist to MediaObjImgDownload.dateCreated to satisfy NOT NULL on insert
Add MediaObjImgDownloadRepository with existsByObjImgIdAndMemberId
Required by ImagingProxyService (Task 10) to deduplicate per-member download tracking without a full table scan.
Add CHAT_ATTACHMENT assoc type with imaging-chat-attachments bucket
Skip creator in findOrCreateExactChatSession member loop (createChatSession already adds them)
Service methods for exact-match find/create, member add, mute, revoke, read
Add dateLastViewed to MediaSessionMember for receipt timestamps
Translation cache for chat messages
Adds the MediaObjMsgTranslation entity (one row per (message, language) pair) and an optional sourceLanguageId column on MediaObjMsg so chat messages can be tra...
Remove @PostConstruct COMP provisioner — fix existing orders directly in DB
approveOrder() already handles new COMP orders. One-time data gap for existing orders is corrected directly in the database.
Self-heal unprovisioned COMP orders on startup
On @PostConstruct, scan all APPROVED COMP orders and provision any that lack an AccountSubscription. Idempotent — find-or-create means safe to run repeatedly.
Use CommerceMarket.getId() instead of getUid() in provisionCompSubscription
CommerceMarket uses @Id UUID id (not uid), so Lombok generates getId().
COMP order approval auto-provisions AccountSubscription and assigns license
- SubscriptionOrder: add targetOrganization (nullable FK to orgs) - **************** add targetOrganizationId string - AccountRepository: add findByPrimaryMembe...
Serialize customerMemberId as string to preserve Long precision
- AccountSummaryDTO: annotate uid with **************** and add primaryMemberId string field populated from primary_member_id - CreateSubscriptionOrderRequest: ...
Add MemberUiPreference entity for per-member UI prefs
Generic per-member UI preference store (memberId, prefKey, JSONB value) for small persisted UI settings. First consumer is the hex-head popover size selector.
Replace isAvailable boolean with MemberAvailabilityStatus enum
Handle legacy ordinal strings for CountryType via AttributeConverter
DB rows had country stored as ordinal integers (e.g. "186" for UNITED_STATES) instead of enum names, causing IllegalArgumentException on findAll(). CountryTypeC...
Add CDR caller-ID fields to Recording entity
Adds callerIdNum, callerIdName, callDirection, and callResult columns to the Recording entity so kamo-asterisk-support can store Asterisk CDR metadata alongside...
Je, unaona nini kuhusu usafiri?
Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.