Widen commit log translations.title 에 TEXT 에 일치 DB 열
열은 비문과 DB 모두에서 VARCHAR(512)였다. 긴 번역 제목에 실패하는 번역 삽입. DB 칼럼은 이제 STRING (직접적으로 승인); 이 표기는 엔티티티를 유지합니다. 제품정보.
Paginated Recording lookup by (instance, extension, isVm)
Used by the softphone tabs as the canonical source of truth for call recordings and voicemails when the upstream provider can't list them — e.g. FreePBX 17 has ...
Drop stale BillingGroup-era 댓글 + 사용되지 않은 SubscriptionMember 쿼리
AppliedModelEnforcementService에 있는 leftover doc 블록을 구합니다. 빌링그룹의 개념으로, 제거 *********** 통합 후 *********** 직접 회원을 걸기 위하여.
Top-level org bypass + 하위없이 orgs에 대한 무료 기본 낙하
Org-level 제목 체크 **************** org를 타겟팅하는 구독. 새로운 Target org 모델과 함께, orgs는 accountSubscription은 모든 비핵 앱이 거부되지 않았습니다. 2개의 고침: - 최고 수준의 KamoCRM org는 완전히 청구를 우회...
계정 레벨 관리자를 per-sub 멤버에서 분할; subs gain target org
SubscriptionMember를 추가합니다. KamoCRM org의 계정은 여러 구독을 보유 할 수 있으며 각 타겟팅 다른 sub-org. accountMember는 이제 계정 레벨 관리자 플래그만 수행합니다. (isAccountManager, canManageBilling); pe...
계정 그룹 -> AccountTier (고객 세그먼트, 청구하지 않음)
소매 고객 관련 단체 ( discountPercentage와 함께 사용 PriceList for tier-based price) 현재 제거 된 이름으로 호출 빌링 그룹 개념. "Tier"를 통해 이름을 변경하여 각자 퇴색하고 lingering “group” 용어를 삭제하십시오 계정 패키...
계정을 만드십시오; 회원 세트 + AccountMember를 가진 사용자 세트를 대체하십시오
계정은 이제 "그룹" 자체입니다 - 별도의 청구 그룹이 없습니다. 이름 * 회원 (org-scoped)는 직접 계정을 통해 새로운 AccountMember 가입, 회원 권한 플래그 수행 로그인 계정을 만들기 위한 첫 번째 멤버는 1차회원이 됩니다. 계정.java: - ManyToMan...
BillingGroup에서 계정으로 마이그레이션
계정은 이제 단일 줄무늬 고객 주입니다. 회원 필요 (e.g. 구독을 위해) 자동 생성 계정; 그 계정 한 개 이상의 카드를 1 차로 지정하고, 소유합니다. 모든 구독, 라이센스, 송장 및 청구 구성 행. Schema 변화 (Account.java): - stripeCustomerId...
Map external customer address blocks into AccountAddress on pull
Add AdapterAddressMapper helper that converts a JSON address node from any provider into an EmbAddress and attaches it to an Account as a typed AccountAddress (...
Orient live record 에 계정 주소 프로필, snapshot 역사적인 주소
Orient live commerce record to reference the account profile's primary shipping/billing, 중국 (본토) 기록이 역사가 될 때만 찍은 스냅샷(placed/shipped). 라이브 (기본 계정): - 손수레: 이미 참고...
Account.java를 embeddables로 전환하십시오; 배송 / 청구 목록에 대한 계정주소를 추가하십시오
- AccountAddressType enum 추가 (SHIPPING, BILLING) - AccountAddress 엔터티티를 추가하십시오 (FK, 유형, 라벨, EmbAddress, 타임스탬프) - AccountAddressRepository 추가 - Refactor account....
녹음, 음성 메일 아카이브, MinIO 범위 스트리밍에 키 표시
- 기록: 공급자InstanceId + 공급자ExternalId를 추가하십시오 공급자 통화history/voicemail는 화상 진찰 자산에 뒤를 젓습니다 - PhoneVoicemail: add isArchived + datesoftphone 목록에서 soft-hide에 대한 - Rol...
Lead-history 감사 로그 추가 - 단체, 등록, 서비스, DTO, LeadService Hooks
- LeadHistory entity (UUID PK, Plain Long FKs — FK constraints는 납 탈수 / 변환을 허용하도록 함) - LeadHistoryEventType은 인간 읽기 쉬운 상표를 가진 enum - LeadHistoryFieldRegistry : ~5...
Account.notes 제거 및 CurrencyType 변환에 대한 RetailService 및 공급자 어댑터 업데이트
CurrencyType enum 을 추가, 기본 통화로 CountryType 을 업데이트, Account/Organization 에 통화 추가, LeadService 에 리드 계정 할당 추가
국제 지원 추가 - 리드 국가 / 보조 / 시간대, Org 언어, CountryType isProvince
- CountryType: PROVINCE NAMES 세트 추가, isProvince(), getSubdivisionLabel() - 조직 : 언어 추가 (LanguageType) 필드 - 리드: 국가 추가 (CountryType), 하위디비전 (String), 시간대 (Timezone...
Recording + RecordingExt entities, RecordingImagingService는 그들을 씁니다
- 새로운 기록체 (UUID id, IMG ID, IS MASTER, IS VM, EXTENSION, MEMBER ID, LENGTH, DATE RECORDED, DATE CREATED [DB-defaulted @CreationTimestamp를 통해]). 최종 음성 메일 당 한 줄 또...
Use @CreationTimestamp(source=DB) on ****************
The DB is the single source of truth for timestamps in this codebase. The canonical Hibernate pattern is @CreationTimestamp(source = SourceType.DB), which makes...
Let DB fill **************** via @Generated(INSERT)
INSERTs were failing with: null value in column "date_created" violates not-null constraint @ColumnDefault only declares the DB-side default for new rows; Hi...
MemberCallFeatures entity 및 repository for call forward and auto-answer preferences 추가
UnprocessedRecording staging entity, ImgDat 트랙 트랙, 레코딩 이미징 서비스
- 수정 ImageAssocType ID 충돌: VM RECORDING=8, CALL RECORDING=9 (모든 것 4에 MY DOCS를 복제합니다. - 추가 *********** 그래서 마스터 녹음을 수행 할 수 있습니다 per-channel Opus/WebM는 기존의 썸네일 개념과...
LeadMarket 및 companyName에 추가하기
- LeadMarket entity 은 include company (Boolean, nullable) 을 가져옵니다. - Lead entity 은 company name (String, max 50, nullable) 을 가져옵니다. - LeadMarketDTO, CreateLeadM...
Serialize ExtensionDto. 할당 된MemberId 문자열로
overflows JS의 안전한integer 범위 (예를들면 1168485658174423046 왕복 1168485658174423000 한 번 JSON 번호는 브라우저를 표시). 오시는 길 이미 `string | null`로 입력하고 `String(mid)와 비교 === memberI...
Coerce isDisplayOnIntake=true when isRequired=true in CustomFormService
Add isConnected field to VoipProviderInstance
Nullable Boolean: null = never tested, true = last test passed, false = failed. Requires KamoInitializerService schema migration to add IS_CONNECTED column.
Unread-based count + 보류바이저
추가 *********** 그래서 navtop SupportButton 배지는 실제로 필요로 하는 지원 표 수 있습니다 주의 (읽지 않은 방문자 메시지) 대신 PRE TICKET/NEW 이름 * 카운트는 DB에서 똑똑히 읽습니다 그래서 그것은 새로 살아남습니다. 또한 추가 ******...
지원 티켓 필요 회원-agnostic 읽지 않은 수
지원 티켓의 방문자 메시지는 같은 systemMember에 저장됩니다. 그 대리인은, 그래서 기존의 CHAT-session 읽었습니다 queries - m.member.id를 제외한 = :memberId - 항상 0을 반환 지원 세션. 티켓 목록 배지 그러므로 결코 등장하지 않았습니다....
티켓 엔터티에 Snapshot 방문자 지
VISITOR IP ADDRESS, VISITOR COUNTRY CODE, VISITOR COUNTRY NAME에 추가하십시오. VISITOR CITY, VISITOR SUBDIVISION 열. 티켓 작성 그래서 목록/세부 끝점은 GeoLite 범위 검사 또는 할 필요가 없습니다 자주 ...
Add findBySessionGuidin 대량 로딩
지원 티켓 목록 endpoint에 의해 사용하는 모든 방문자를 fetch N 별도의 findBySessionGuid 호출 대신 하나의 쿼리에 페이지.
정확한 JsonIdentity 'uniqueId'의 정보 속성
@JsonIdentityInfo(property = "uniqueId")를 선언했지만 실제 기본 키 필드는 'id'로 지정됩니다. 잭슨 threw 'uniqueId'라는 이름을 가진 속성을 찾을 수 없습니다. 즉, PUT /org/{id}를 사용하는 멤버(예: 조직)을 참조하여 반환 4...
읽지 않은 회원 쿼리에 SUPPORT TICKET 세션 포함
findChatMembershipsByMemberId 이제 CHAT에 대한 회원을 반환하고 SUPPORT TICKET 세션 유형이므로 기존의 읽지 않은 계정 인프라 (getUnreadCountsByMember, /topic/chat/unread/{memberId} 방송, GET ****...
Add resetHasAttachmentsForFolder query to ConversationRepository
Allows sync to reset stale has_attachments flags before re-indexing so corrected MIME detection can rebuild the field from actual attachment data.
Multi-instance 전화/SMS 공급자 스키마 기초
- Rename VoipProviderConfig → VoipProviderInstance; Drop UNIQUE(org id), add 인스턴스 name, config json, last sync at, last sync error. - Rename BulkTextProviderCon...
드롭 팀MemberPayFeesSetting
직원 자체 지불 수수료 정책이 사라집니다 - BillingGroup refactor handles 보안 모델을 통해 아닌 그룹 당 청구. 제거하기 teamMemberPayFeesSetting 열에서 ChildOrgSecurityModel, 일치 ChildOrgSecurityModelDT...
Per-alias 제작자 유형 시정 플래그 추가
SeeToMembers/ 가시ToTeamMembers boolean 열을 추가하십시오. ChildOrgSecurityModelAlias 그래서 관리자는 부모 별명을 제한할 수 있습니다. Child orgs를 만들 때 멤버 vs 팀 멤버에게 나타났습니다. - 성격: 2 @Builder....
Connect/write/read timeout을 OkHttpClient를 통해 MinioClient에 적용
Timeouts 없이, downed site-replication 동료 (k2m1)는 makeBucket를 일으키는 원인이 되었습니다 그리고 putObject 호출은 무한하게 차단, 무한한 서핑 로고 업로드 UI에 "Saving...". OkHttpClient는 이제 30초 동안 시행됩...
Entities, cipher 및 alias/DNS 로그 비계 추가
Per-org GoDaddy creds (AES-GCM 암호화)에 추가, AllowRootSubdomains 플래그 and child-org alias collection on the security model, DNS 제공 SecurityService에서 Round-trip에 사용되는...
드롭 등록PhoneCode entity + 저장소
셀프서비스 등록은 더 이상 SMS-code 검증을 사용합니다. 전화 필드 - 등록 양식은 일반 텍스트로 전화 번호를 수집 새로운 사용자에 저장. 사용되지 않은 법인을 제거하고 그것의 저장소. register phone codes 테이블 ( 이미 생성 된 경우) KamoInitialize...
시스템 사용자 플래그 + 액세스-grant entity 추가
플랫폼 전체 시스템 사용자 모델 소개: a User.isSystemUser flag (일부 인덱스는 싱글톤을 적용합니다), 플러스 SystemUserAccess 테이블 그 기록은 top-level-org 부서, 직책, 또는 팀 구성원 시스템 사용자를 impersonate 할 수 있습니다...
등록 iPhoneCode entity + 저장소 추가
새로운 테이블 `registration phone codes` 저장 한 샷 SMS 인증 코드 자체 서비스 등록 기간 동안 발급된 사용자의 법인이 존재하기 전에. NULL userId를 수행하기 위해 AccountVerificationCode에서 분리되는 Kept 그 테이블에.
추가 AgeReqType.allowsUnder13() 도움자
추가 회원에 의해 사용 / 팀 회원은 이메일 수집을 건너 뛰기 연령 요건이 13세 미만의 사용자를 허용하는 경우 (ALL AGES, KIDS ONLY, ALL COPPA GRADS).