Add app management system with service types, rights, and feature control
Restructure ServiceType enum: add core/deprecated flags, rename DOC_MANAGER→DOCS and AI_CHAT→AI_SUPPORT, add SUPPORT/NOTES/POS types, deprecate STORAGE/DOC_CLAS...
Add email alias and shared mailbox entities and repositories
New JPA entities for email_provider schema: EmailAliasEntity (send-as aliases per member), SharedMailboxEntity (org-wide shared mailboxes with encrypted IMAP cr...
Add PRE_TICKET status and preTicket flag on create request
New status PRE_TICKET(14) for chat-first sessions where the user starts chatting without formally submitting a ticket. Can be converted to a full ticket later b...
Assign default roles to members on creation
**************** now assigns the "Members" (Everyone) role from organization.roleMemberID. **************** now assigns both the "Members" (Everyone) role and ...
Targeted rights recalculation for dept, job title, and role changes
- DepartmentService: recalculates only members in the affected department after create/update/delete - JobTitleService: recalculates only members with the aff...
Recalculate member_rights_applied after new member creation
Calls updateMemberRightsApplied on the new member after both createOrganizationMember and createOrganizationTeamMember so the Everyone role rights are immediate...
Add granular role protection flags and Team Members system role
- Add isAllowEditTitle and isAllowEditSecurity flags to OrgRole entity - Rename roleEveryoneID to roleMemberID on Organization, add roleTeamMemberID - Rename "E...
Correct MediaObjImgDownload FK to use MediaObjImg UUID PK instead of composite key
The composite FK (OBJ_ID, IMG_ID) referenced non-PK columns causing a type mismatch (uuid vs int). Changed to single FK on OBJ_IMG_ID referencing MediaObjImg.ID...
Use native query for avg resolution time to avoid Hibernate EXTRACT(EPOCH) limitation
Hibernate 6 cannot apply EXTRACT(EPOCH FROM ...) to a timestamp subtraction (produces Duration type, not TEMPORAL). Switched to a native SQL query that Cockroac...
Add support ticket enums and new permissions to shared library
Add AI processing support to notes data model
Add aiProcessingEnabled field to Note entity, DTOs, and requests. Create NoteEmbeddingRecord entity and repository for tracking note vectorization in the RAG pi...
Serialize NoteDTO Long IDs as strings for JavaScript precision safety
CockroachDB unique_rowid() IDs exceed JavaScript's MAX_SAFE_INTEGER, causing precision loss when parsed as numbers. Add @JsonSerialize with ToStringSerializer t...
Use managed role references when creating role rights in createOrganization
After organizationRepository.save(), the local roleAdmin/roleEveryone variables could be detached from the persistence context. createRoleRights() was adding Or...
Add access security system entities, enums, and repositories
Adds JPA entities (OrgAccessRule, OrgGeoBlockRule, OrgSuspiciousDetectionRule, SystemAccessLog, GeoLiteBlock, GeoLiteLocation, GeoLiteSyncStatus), 6 new enums, ...
Update KbMediaRepository and VoipMessageRepository query param types to UUID
Resolve remaining Long/UUID type mismatches in services and DTOs
Fixes compilation errors in CommerceService, OrganizationService, ExternalAuthProviderService, Img*Service, Lead*Service, LeadVendorService, ImageService, and a...
Convert internal entity IDs from Long/unique_rowid() to UUID/gen_random_uuid()
Improves CockroachDB write performance by using randomly-distributed UUIDs for internal entity primary keys instead of sequential unique_rowid() values. User-fa...
Add findDueReminders and markAsSent queries to CalendarEventReminderRepository
Add method/organizerEmail to CalendarEvent, role/rsvp/lastResponseAt to CalendarEventAttendee
Add @JsonIgnore to VoipMessage.conversation to prevent lazy load on serialization
Add OrgOAuthToken entity for OAuth 2.0 token storage
- Add OrgOAuthToken entity in KamoTokens schema (kamotokens.org_oauth_token) - Add OrgOAuthTokenRepository with findByOrgIdAndProvider / deleteByOrgIdAndProvide...
Remove clientId/clientSecret from VoipProviderConfig
These are platform-level credentials shared across all orgs. Only jwtKey and mainPhoneNumber are per-org.
Correct field name in findEventsNeedingSync query from 'integration' to 'contactIntegration'
CalDav/CardDav Part 4 — shared library repository and entity additions
- Add contactIntegration FK to ContactBook entity - Add findByContactIntegrationId to UserCalendarRepository - Add findByContactIntegrationId to ContactBookRepo...
Add findByUidAndContactBookId, findChangedSince, findDeletedSince to ContactRepository; add findByOwnerId to ContactBookRepository
Add findByIcalUidAndUserCalendarId, findChangedSince, findDeletedSince to CalendarEventRepository
Add contact sub-entities (email, phone, address, org, url, im)
Delete CalendarIntegration entity and repository — replaced by ContactIntegration
Add **************** to CalendarEvent, replace CalendarIntegration FK
Add DAV fields to UserCalendar, replace CalendarIntegration FK with ContactIntegration
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.