Skip to content

CRM - Technical Map

Auto-generated bởi codebase-doc-generator ngày 2026-03-23 (verified từ code thực). Không chỉnh sửa thủ công.

Routes chính

RoutePathModule IDPermissions
ROUTE_TICKET/crm/ticketticket_managementCrmRoles
ROUTE_TICKET_MULTIPLE/crm/ticket/multipleticket_managementCrmRoles
ROUTE_CUSTOMER/crm/customercustomer_managementCrmRoles
ROUTE_KNOWLEDGE_BASE_INFO/crm/knowledge_base_infoknowledge_base_managementCrmRoles, ITLeader, ITStaff
ROUTE_ASSIGNMENT/crm/assignmentassignment_managementTelesalesLeader, CustomerServiceLeader, ITLeader, ITStaff
ROUTE_MAPPING_ACC/crm/mappingknowledge_baseITLeader, ITStaff

FE Pages (17)

NhómFiles
TicketTickets.tsx, TicketCreate.tsx, TicketDetail.tsx, TicketDetailDetail.tsx, TicketDetailNote.tsx, TicketDetailTicketHistory.tsx, TicketDetailEditHistory.tsx, TicketMultipleCreate.tsx
CustomerCustomer.tsx, CustomerDetail.tsx
AssignmentAssignment.tsx, AssignmentCreate.tsx, AssignmentDetail.tsx
Knowledge / mappingKnowledgeBaseInfo.tsx, MappingAcc.tsx, MappingAccCreate.tsx

FE Components & Compositions

AreaFiles chính
Ticketcomponents/ticket/*, useTicket.ts, useTicketBuilder.ts, useTicketMultipleForm.ts
Call centerNewCallListener.tsx, useSipCall.ts, graphql/call.graphql
Customer CRMcomponents/customer/*, graphql/customer-visit.graphql
Assignment / mappingcomponents/assignment/*, graphql/assign-ticket.graphql, graphql/mapping.graphql

GraphQL Files

FileOpsScope
ticket.graphql17Ticket list/detail/create/update/history
call.graphql8In-call / call logs / extension
mapping.graphql8Hotline account mapping
branch_user.graphql5Branch-user lookup cho assignment
customer-visit.graphql3Customer visit + revenue
assign-ticket.graphql1Assign ticket action

Backend Actions (crm-api)

FileVai trò
assign_ticket.goPhân công ticket
change_status_ticket.goĐổi trạng thái ticket
callcenter_callout.goGọi ra từ call center
callcenter_calldata.goDữ liệu tổng hợp call center
incall_call.goIn-call integration
secure_incall.goBảo mật / secure flow cho call integration
apply_employee_program.goLuồng business liên quan employee program
get_presigned_url.goUpload/file support cho CRM

Event Handlers (crm-api)

FileMục đích
ticket_insert.goXử lý khi tạo ticket
ticket_update.goXử lý cập nhật ticket
ticket_interest_delete.goĐồng bộ khi xóa interest
incall_call_insert.goLog cuộc gọi vào
incall_call_log_insert.goTạo call log
incall_call_log_note_update.goCập nhật note call log
incall_extension_insert.go / incall_extension_update.goĐồng bộ extension
crm_reference_address_update.goĐồng bộ địa chỉ tham chiếu CRM

Schedulers

FileMục đích
distribute_ticket.goTự động chia ticket
remind_ticket_today.goNhắc ticket đến hạn hôm nay
remind_ticket_tomorrow.goNhắc ticket sắp đến hạn
consolidate_ticket_4.go / consolidate_ticket_8.goGom / xử lý ticket theo mốc thời gian
kpi_hotline.goKPI hotline scheduler

Data Model (CRM DB)

TableMô tả
ticketBản ghi ticket chính
ticket_distributeLịch sử / mapping distribute
ticket_interestNhu cầu / interest của ticket
ticket_campaignCampaign liên quan ticket
ticket_history_logAudit trail
crm_userUser dimension trong CRM
knowledge_questionCâu hỏi knowledge base
knowledge_question_tagTags cho knowledge item
incall_callCuộc gọi
incall_call_logLog gọi
incall_extensionMáy lẻ / extension
incall_call_contact_mappingMapping extension + phone -> contact

Store layer

FileVai trò
pkg/store/ticket.goType, query, mutate ticket, status/source constants
pkg/store/ticket_distribute.goTicket distribute helpers
pkg/store/ticket_interest.goTicket interest data access
pkg/store/ticket_campaign.goCampaign mapping
pkg/store/incall_call.goIn-call entities
pkg/store/incall_call_contact_mapping.goUpsert mapping extension-phone-contact

Rủi ro / Findings kỹ thuật

#Note
1Ticket list có logic local storage cho extension và call-state ngay trong FE page.
2sourceDescriptions được hard-code trong Tickets.tsx, không đọc từ master data.
3Customer detail CRM reuse rất nhiều component từ userecommerce; testing cần bao gồm cross-module routes.
4useTicketBuilder.ts chịu trách nhiệm phần lớn logic filter theo role/branch/status/result/source.