@hed-hog/ticket 0.0.285
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +480 -0
- package/dist/dto/assign-ticket-owner.dto.d.ts +4 -0
- package/dist/dto/assign-ticket-owner.dto.d.ts.map +1 -0
- package/dist/dto/assign-ticket-owner.dto.js +7 -0
- package/dist/dto/assign-ticket-owner.dto.js.map +1 -0
- package/dist/dto/create-ticket-channel-account.dto.d.ts +10 -0
- package/dist/dto/create-ticket-channel-account.dto.d.ts.map +1 -0
- package/dist/dto/create-ticket-channel-account.dto.js +7 -0
- package/dist/dto/create-ticket-channel-account.dto.js.map +1 -0
- package/dist/dto/create-ticket-channel.dto.d.ts +7 -0
- package/dist/dto/create-ticket-channel.dto.d.ts.map +1 -0
- package/dist/dto/create-ticket-channel.dto.js +7 -0
- package/dist/dto/create-ticket-channel.dto.js.map +1 -0
- package/dist/dto/create-ticket-internal-note.dto.d.ts +4 -0
- package/dist/dto/create-ticket-internal-note.dto.d.ts.map +1 -0
- package/dist/dto/create-ticket-internal-note.dto.js +7 -0
- package/dist/dto/create-ticket-internal-note.dto.js.map +1 -0
- package/dist/dto/create-ticket-reply.dto.d.ts +5 -0
- package/dist/dto/create-ticket-reply.dto.d.ts.map +1 -0
- package/dist/dto/create-ticket-reply.dto.js +7 -0
- package/dist/dto/create-ticket-reply.dto.js.map +1 -0
- package/dist/dto/update-ticket-channel-account.dto.d.ts +8 -0
- package/dist/dto/update-ticket-channel-account.dto.d.ts.map +1 -0
- package/dist/dto/update-ticket-channel-account.dto.js +7 -0
- package/dist/dto/update-ticket-channel-account.dto.js.map +1 -0
- package/dist/dto/update-ticket-channel.dto.d.ts +5 -0
- package/dist/dto/update-ticket-channel.dto.d.ts.map +1 -0
- package/dist/dto/update-ticket-channel.dto.js +7 -0
- package/dist/dto/update-ticket-channel.dto.js.map +1 -0
- package/dist/dto/update-ticket-priority.dto.d.ts +4 -0
- package/dist/dto/update-ticket-priority.dto.d.ts.map +1 -0
- package/dist/dto/update-ticket-priority.dto.js +7 -0
- package/dist/dto/update-ticket-priority.dto.js.map +1 -0
- package/dist/dto/update-ticket-settings.dto.d.ts +13 -0
- package/dist/dto/update-ticket-settings.dto.d.ts.map +1 -0
- package/dist/dto/update-ticket-settings.dto.js +7 -0
- package/dist/dto/update-ticket-settings.dto.js.map +1 -0
- package/dist/dto/update-ticket-status.dto.d.ts +4 -0
- package/dist/dto/update-ticket-status.dto.d.ts.map +1 -0
- package/dist/dto/update-ticket-status.dto.js +7 -0
- package/dist/dto/update-ticket-status.dto.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -0
- package/dist/ticket-ai-review.controller.d.ts +9 -0
- package/dist/ticket-ai-review.controller.d.ts.map +1 -0
- package/dist/ticket-ai-review.controller.js +36 -0
- package/dist/ticket-ai-review.controller.js.map +1 -0
- package/dist/ticket-channel-accounts.controller.d.ts +24 -0
- package/dist/ticket-channel-accounts.controller.d.ts.map +1 -0
- package/dist/ticket-channel-accounts.controller.js +72 -0
- package/dist/ticket-channel-accounts.controller.js.map +1 -0
- package/dist/ticket-channels.controller.d.ts +21 -0
- package/dist/ticket-channels.controller.d.ts.map +1 -0
- package/dist/ticket-channels.controller.js +72 -0
- package/dist/ticket-channels.controller.js.map +1 -0
- package/dist/ticket-data.controller.d.ts +24 -0
- package/dist/ticket-data.controller.d.ts.map +1 -0
- package/dist/ticket-data.controller.js +81 -0
- package/dist/ticket-data.controller.js.map +1 -0
- package/dist/ticket-items.controller.d.ts +35 -0
- package/dist/ticket-items.controller.d.ts.map +1 -0
- package/dist/ticket-items.controller.js +100 -0
- package/dist/ticket-items.controller.js.map +1 -0
- package/dist/ticket-settings.controller.d.ts +11 -0
- package/dist/ticket-settings.controller.d.ts.map +1 -0
- package/dist/ticket-settings.controller.js +50 -0
- package/dist/ticket-settings.controller.js.map +1 -0
- package/dist/ticket.module.d.ts +3 -0
- package/dist/ticket.module.d.ts.map +1 -0
- package/dist/ticket.module.js +45 -0
- package/dist/ticket.module.js.map +1 -0
- package/dist/ticket.service.d.ts +88 -0
- package/dist/ticket.service.d.ts.map +1 -0
- package/dist/ticket.service.js +83 -0
- package/dist/ticket.service.js.map +1 -0
- package/hedhog/data/menu.yaml +164 -0
- package/hedhog/data/role.yaml +23 -0
- package/hedhog/data/route.yaml +225 -0
- package/hedhog/data/setting_group.yaml +574 -0
- package/hedhog/frontend/app/[id]/page.tsx.ejs +360 -0
- package/hedhog/frontend/app/_components/ai-draft-editor-dialog.tsx.ejs +67 -0
- package/hedhog/frontend/app/_components/ticket-badges.tsx.ejs +65 -0
- package/hedhog/frontend/app/_components/ticket-context-card.tsx.ejs +80 -0
- package/hedhog/frontend/app/_components/ticket-timeline.tsx.ejs +59 -0
- package/hedhog/frontend/app/_lib/mock-data.ts.ejs +474 -0
- package/hedhog/frontend/app/_lib/types.ts.ejs +134 -0
- package/hedhog/frontend/app/ai-review/page.tsx.ejs +205 -0
- package/hedhog/frontend/app/channel-accounts/page.tsx.ejs +476 -0
- package/hedhog/frontend/app/channels/page.tsx.ejs +406 -0
- package/hedhog/frontend/app/dashboard/page.tsx.ejs +178 -0
- package/hedhog/frontend/app/inbox/page.tsx.ejs +500 -0
- package/hedhog/frontend/app/page.tsx.ejs +5 -0
- package/hedhog/frontend/app/reports/page.tsx.ejs +151 -0
- package/hedhog/frontend/app/roles/page.tsx.ejs +110 -0
- package/hedhog/frontend/app/settings/page.tsx.ejs +484 -0
- package/hedhog/frontend/messages/en.json +412 -0
- package/hedhog/frontend/messages/pt.json +412 -0
- package/hedhog/table/channel.yaml +23 -0
- package/hedhog/table/channel_account.yaml +34 -0
- package/hedhog/table/ticket.yaml +73 -0
- package/hedhog/table/ticket_ai_draft.yaml +51 -0
- package/hedhog/table/ticket_attachment.yaml +40 -0
- package/hedhog/table/ticket_category.yaml +22 -0
- package/hedhog/table/ticket_context.yaml +64 -0
- package/hedhog/table/ticket_message.yaml +49 -0
- package/hedhog/table/ticket_message_source.yaml +50 -0
- package/hedhog/table/ticket_metadata.yaml +21 -0
- package/hedhog/table/ticket_participant.yaml +25 -0
- package/hedhog/table/ticket_source.yaml +43 -0
- package/hedhog/table/ticket_tag.yaml +22 -0
- package/package.json +40 -0
- package/src/dto/assign-ticket-owner.dto.ts +3 -0
- package/src/dto/create-ticket-channel-account.dto.ts +9 -0
- package/src/dto/create-ticket-channel.dto.ts +6 -0
- package/src/dto/create-ticket-internal-note.dto.ts +3 -0
- package/src/dto/create-ticket-reply.dto.ts +4 -0
- package/src/dto/update-ticket-channel-account.dto.ts +7 -0
- package/src/dto/update-ticket-channel.dto.ts +4 -0
- package/src/dto/update-ticket-priority.dto.ts +3 -0
- package/src/dto/update-ticket-settings.dto.ts +12 -0
- package/src/dto/update-ticket-status.dto.ts +3 -0
- package/src/index.ts +19 -0
- package/src/language/en.json +8 -0
- package/src/language/pt.json +8 -0
- package/src/ticket-ai-review.controller.ts +14 -0
- package/src/ticket-channel-accounts.controller.ts +34 -0
- package/src/ticket-channels.controller.ts +31 -0
- package/src/ticket-data.controller.ts +39 -0
- package/src/ticket-items.controller.ts +56 -0
- package/src/ticket-settings.controller.ts +20 -0
- package/src/ticket.module.ts +32 -0
- package/src/ticket.service.ts +102 -0
|
@@ -0,0 +1,412 @@
|
|
|
1
|
+
{
|
|
2
|
+
"TicketModule": {
|
|
3
|
+
"common": {
|
|
4
|
+
"home": "Home",
|
|
5
|
+
"tickets": "Tickets",
|
|
6
|
+
"all": "All",
|
|
7
|
+
"yes": "Yes",
|
|
8
|
+
"no": "No",
|
|
9
|
+
"actions": "Actions",
|
|
10
|
+
"status": "Status",
|
|
11
|
+
"priority": "Priority",
|
|
12
|
+
"channel": "Channel",
|
|
13
|
+
"context": "Context",
|
|
14
|
+
"owner": "Owner",
|
|
15
|
+
"requester": "Requester",
|
|
16
|
+
"code": "Code",
|
|
17
|
+
"name": "Name",
|
|
18
|
+
"edit": "Edit",
|
|
19
|
+
"disabled": "disabled",
|
|
20
|
+
"enabled": "enabled"
|
|
21
|
+
},
|
|
22
|
+
"badges": {
|
|
23
|
+
"status": {
|
|
24
|
+
"open": "Open",
|
|
25
|
+
"pending": "Pending",
|
|
26
|
+
"waiting_customer": "Waiting Customer",
|
|
27
|
+
"resolved": "Resolved",
|
|
28
|
+
"closed": "Closed",
|
|
29
|
+
"spam": "Spam"
|
|
30
|
+
},
|
|
31
|
+
"priority": {
|
|
32
|
+
"low": "Low",
|
|
33
|
+
"normal": "Normal",
|
|
34
|
+
"high": "High",
|
|
35
|
+
"urgent": "Urgent"
|
|
36
|
+
},
|
|
37
|
+
"aiReviewMode": {
|
|
38
|
+
"disabled": "Disabled",
|
|
39
|
+
"optional": "Optional",
|
|
40
|
+
"required": "Required"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"dashboard": {
|
|
44
|
+
"title": "Ticket Dashboard",
|
|
45
|
+
"description": "Omnichannel operational and executive overview for Hcode support",
|
|
46
|
+
"breadcrumb": "Dashboard",
|
|
47
|
+
"stats": {
|
|
48
|
+
"totalOpen": "Total Open",
|
|
49
|
+
"pending": "Pending",
|
|
50
|
+
"resolvedToday": "Resolved Today",
|
|
51
|
+
"aiPendingReview": "AI Pending Review",
|
|
52
|
+
"waitingCustomer": "Waiting Customer",
|
|
53
|
+
"urgent": "Urgent"
|
|
54
|
+
},
|
|
55
|
+
"cards": {
|
|
56
|
+
"byChannel": "Tickets By Channel",
|
|
57
|
+
"byCourse": "Tickets By Course",
|
|
58
|
+
"byOwner": "Tickets By Owner",
|
|
59
|
+
"latestActivity": "Latest Activity"
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"inbox": {
|
|
63
|
+
"title": "Ticket Inbox",
|
|
64
|
+
"description": "Operational inbox with omnichannel filters for support team",
|
|
65
|
+
"breadcrumb": "Inbox",
|
|
66
|
+
"newTicket": "New Ticket",
|
|
67
|
+
"stats": {
|
|
68
|
+
"open": "Open",
|
|
69
|
+
"pending": "Pending",
|
|
70
|
+
"waitingCustomer": "Waiting Customer",
|
|
71
|
+
"urgent": "Urgent"
|
|
72
|
+
},
|
|
73
|
+
"quick": {
|
|
74
|
+
"all": "All",
|
|
75
|
+
"my": "My Tickets",
|
|
76
|
+
"open": "Open",
|
|
77
|
+
"waiting_customer": "Waiting Customer",
|
|
78
|
+
"resolved": "Resolved",
|
|
79
|
+
"urgent": "Urgent"
|
|
80
|
+
},
|
|
81
|
+
"searchPlaceholder": "Search by code, subject, requester, lesson",
|
|
82
|
+
"filters": {
|
|
83
|
+
"status": "Status",
|
|
84
|
+
"allStatus": "All Status",
|
|
85
|
+
"priority": "Priority",
|
|
86
|
+
"allPriority": "All Priority",
|
|
87
|
+
"channel": "Channel",
|
|
88
|
+
"allChannels": "All Channels",
|
|
89
|
+
"owner": "Owner",
|
|
90
|
+
"allOwners": "All Owners",
|
|
91
|
+
"requester": "Requester",
|
|
92
|
+
"allRequesters": "All Requesters",
|
|
93
|
+
"course": "Course",
|
|
94
|
+
"allCourses": "All Courses",
|
|
95
|
+
"section": "Section",
|
|
96
|
+
"allSections": "All Sections",
|
|
97
|
+
"lesson": "Lesson",
|
|
98
|
+
"allLessons": "All Lessons",
|
|
99
|
+
"video": "Video",
|
|
100
|
+
"allVideos": "All Videos",
|
|
101
|
+
"aiStatus": "AI Status",
|
|
102
|
+
"allAiStatus": "All AI Status",
|
|
103
|
+
"pendingReview": "Pending Review",
|
|
104
|
+
"approved": "Approved",
|
|
105
|
+
"tags": "Tags",
|
|
106
|
+
"allTags": "All Tags",
|
|
107
|
+
"categories": "Categories",
|
|
108
|
+
"allCategories": "All Categories"
|
|
109
|
+
},
|
|
110
|
+
"table": {
|
|
111
|
+
"title": "Operational Inbox",
|
|
112
|
+
"subject": "Subject",
|
|
113
|
+
"channelAccount": "Channel Account",
|
|
114
|
+
"lastActivity": "Last Activity",
|
|
115
|
+
"aiReview": "AI Review"
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
"detail": {
|
|
119
|
+
"description": "Ticket operational detail with omnichannel context and AI assistant",
|
|
120
|
+
"takeOwnership": "Take Ownership",
|
|
121
|
+
"assign": "Assign",
|
|
122
|
+
"changeStatus": "Change Status",
|
|
123
|
+
"ownerBadge": "Owner: {name}",
|
|
124
|
+
"requesterCard": {
|
|
125
|
+
"title": "Requester",
|
|
126
|
+
"role": "Role: {role}"
|
|
127
|
+
},
|
|
128
|
+
"sourceCard": {
|
|
129
|
+
"title": "Source And Labels",
|
|
130
|
+
"channel": "Channel:",
|
|
131
|
+
"account": "Account:",
|
|
132
|
+
"tag": "tag: {value}",
|
|
133
|
+
"category": "category: {value}"
|
|
134
|
+
},
|
|
135
|
+
"reply": {
|
|
136
|
+
"title": "Public Reply Composer",
|
|
137
|
+
"subjectPlaceholder": "Subject",
|
|
138
|
+
"bodyPlaceholder": "Type a public reply to requester...",
|
|
139
|
+
"send": "Send Reply"
|
|
140
|
+
},
|
|
141
|
+
"internalNote": {
|
|
142
|
+
"title": "Internal Note Composer",
|
|
143
|
+
"bodyPlaceholder": "Add internal note for operators and admins...",
|
|
144
|
+
"save": "Save Internal Note"
|
|
145
|
+
},
|
|
146
|
+
"validation": {
|
|
147
|
+
"replySubjectRequired": "Enter the reply subject.",
|
|
148
|
+
"replyBodyRequired": "Enter the reply message.",
|
|
149
|
+
"internalNoteBodyRequired": "Enter the internal note content."
|
|
150
|
+
},
|
|
151
|
+
"messages": {
|
|
152
|
+
"replySendSuccess": "Reply sent successfully.",
|
|
153
|
+
"internalNoteSaveSuccess": "Internal note saved successfully."
|
|
154
|
+
},
|
|
155
|
+
"aiPanel": {
|
|
156
|
+
"title": "AI Assistant Panel",
|
|
157
|
+
"draftTitle": "Draft pending review",
|
|
158
|
+
"approve": "Approve And Send",
|
|
159
|
+
"edit": "Edit Draft",
|
|
160
|
+
"reject": "Reject Draft",
|
|
161
|
+
"participants": "Participants",
|
|
162
|
+
"attachments": "Attachments",
|
|
163
|
+
"participantRequester": "{name} (requester)",
|
|
164
|
+
"participantAgent": "{name} (agent)",
|
|
165
|
+
"participantCollaborator": "Bruno Araujo (collaborator)"
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
"aiReview": {
|
|
169
|
+
"title": "AI Review Queue",
|
|
170
|
+
"description": "Review, edit and approve AI suggestions before sending",
|
|
171
|
+
"breadcrumb": "AI Review",
|
|
172
|
+
"searchPlaceholder": "Search by ticket code, channel or context",
|
|
173
|
+
"allStatus": "All Status",
|
|
174
|
+
"pendingReview": "Pending Review",
|
|
175
|
+
"approved": "Approved",
|
|
176
|
+
"rejected": "Rejected",
|
|
177
|
+
"tableTitle": "Pending Drafts",
|
|
178
|
+
"columns": {
|
|
179
|
+
"ticket": "Ticket",
|
|
180
|
+
"channel": "Channel",
|
|
181
|
+
"context": "Context",
|
|
182
|
+
"model": "Model",
|
|
183
|
+
"status": "Status",
|
|
184
|
+
"original": "Original Message",
|
|
185
|
+
"suggestion": "AI Suggestion",
|
|
186
|
+
"actions": "Actions"
|
|
187
|
+
},
|
|
188
|
+
"actions": {
|
|
189
|
+
"approve": "Approve",
|
|
190
|
+
"reject": "Reject",
|
|
191
|
+
"edit": "Edit"
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
"reports": {
|
|
195
|
+
"title": "Ticket Reports",
|
|
196
|
+
"description": "Operational indicators by channel, course, lesson and operator",
|
|
197
|
+
"breadcrumb": "Reports",
|
|
198
|
+
"stats": {
|
|
199
|
+
"firstResponse": "Avg First Response",
|
|
200
|
+
"resolution": "Avg Resolution",
|
|
201
|
+
"approvalRate": "AI Approval Rate",
|
|
202
|
+
"usageByChannel": "AI Usage By Channel"
|
|
203
|
+
},
|
|
204
|
+
"cards": {
|
|
205
|
+
"byChannel": "Volume By Channel",
|
|
206
|
+
"byCourse": "Volume By Course",
|
|
207
|
+
"byLesson": "Volume By Lesson",
|
|
208
|
+
"byOperator": "Volume By Operator",
|
|
209
|
+
"summary": "Operational Summary"
|
|
210
|
+
},
|
|
211
|
+
"summary": {
|
|
212
|
+
"open": "Open tickets: {value}",
|
|
213
|
+
"pending": "Pending tickets: {value}",
|
|
214
|
+
"waiting": "Waiting customer: {value}",
|
|
215
|
+
"resolved": "Resolved today: {value}",
|
|
216
|
+
"urgent": "Urgent backlog: {value}",
|
|
217
|
+
"aiPending": "AI pending review: {value}"
|
|
218
|
+
}
|
|
219
|
+
},
|
|
220
|
+
"channels": {
|
|
221
|
+
"title": "Channels",
|
|
222
|
+
"description": "Catalog of channel kinds used by omnichannel ticket operations",
|
|
223
|
+
"breadcrumb": "Channels",
|
|
224
|
+
"new": "New Channel",
|
|
225
|
+
"searchPlaceholder": "Search by code, name or kind...",
|
|
226
|
+
"tableTitle": "Channel Types",
|
|
227
|
+
"kind": "Kind",
|
|
228
|
+
"disable": "Disable",
|
|
229
|
+
"emptyState": {
|
|
230
|
+
"title": "No channels found",
|
|
231
|
+
"description": "Adjust your search or create a new channel.",
|
|
232
|
+
"action": "New Channel"
|
|
233
|
+
},
|
|
234
|
+
"sheet": {
|
|
235
|
+
"createTitle": "New Channel",
|
|
236
|
+
"createDescription": "Fill out the fields to create a new channel.",
|
|
237
|
+
"editTitle": "Edit Channel",
|
|
238
|
+
"editDescription": "Update the selected channel details."
|
|
239
|
+
},
|
|
240
|
+
"form": {
|
|
241
|
+
"codePlaceholder": "e.g. portal",
|
|
242
|
+
"namePlaceholder": "e.g. Hcode Class",
|
|
243
|
+
"submitCreate": "Create Channel",
|
|
244
|
+
"submitUpdate": "Save Changes"
|
|
245
|
+
},
|
|
246
|
+
"validation": {
|
|
247
|
+
"codeRequired": "Enter the channel code.",
|
|
248
|
+
"nameRequired": "Enter the channel name."
|
|
249
|
+
},
|
|
250
|
+
"messages": {
|
|
251
|
+
"created": "Channel created successfully.",
|
|
252
|
+
"updated": "Channel updated successfully."
|
|
253
|
+
}
|
|
254
|
+
},
|
|
255
|
+
"channelAccounts": {
|
|
256
|
+
"title": "Channel Accounts",
|
|
257
|
+
"description": "Concrete channel integrations used by Hcode support operations",
|
|
258
|
+
"breadcrumb": "Channel Accounts",
|
|
259
|
+
"new": "New Channel Account",
|
|
260
|
+
"searchPlaceholder": "Search by code, channel, name or external identifier...",
|
|
261
|
+
"tableTitle": "Configured Accounts",
|
|
262
|
+
"externalIdentifier": "External Identifier",
|
|
263
|
+
"aiEnabled": "AI Enabled",
|
|
264
|
+
"testConnection": "Test Connection",
|
|
265
|
+
"emptyState": {
|
|
266
|
+
"title": "No channel accounts found",
|
|
267
|
+
"description": "Adjust your search or create a new account.",
|
|
268
|
+
"action": "New Channel Account"
|
|
269
|
+
},
|
|
270
|
+
"sheet": {
|
|
271
|
+
"createTitle": "New Channel Account",
|
|
272
|
+
"createDescription": "Fill out the fields to create a channel account.",
|
|
273
|
+
"editTitle": "Edit Channel Account",
|
|
274
|
+
"editDescription": "Update the selected channel account details."
|
|
275
|
+
},
|
|
276
|
+
"form": {
|
|
277
|
+
"codePlaceholder": "e.g. support_hcode_com_br",
|
|
278
|
+
"namePlaceholder": "e.g. Hcode Support",
|
|
279
|
+
"externalIdentifierPlaceholder": "e.g. mailbox_support_prod",
|
|
280
|
+
"submitCreate": "Create Account",
|
|
281
|
+
"submitUpdate": "Save Changes"
|
|
282
|
+
},
|
|
283
|
+
"validation": {
|
|
284
|
+
"codeRequired": "Enter the account code.",
|
|
285
|
+
"channelRequired": "Select a channel.",
|
|
286
|
+
"nameRequired": "Enter the account name.",
|
|
287
|
+
"externalIdentifierRequired": "Enter the external identifier."
|
|
288
|
+
},
|
|
289
|
+
"messages": {
|
|
290
|
+
"created": "Channel account created successfully.",
|
|
291
|
+
"updated": "Channel account updated successfully.",
|
|
292
|
+
"connectionTested": "Connection tested successfully."
|
|
293
|
+
}
|
|
294
|
+
},
|
|
295
|
+
"settings": {
|
|
296
|
+
"title": "Ticket Settings",
|
|
297
|
+
"description": "Global, channel and channel account controls for omnichannel ticket operations",
|
|
298
|
+
"breadcrumb": "Settings",
|
|
299
|
+
"general": "General",
|
|
300
|
+
"groups": {
|
|
301
|
+
"email": "Email",
|
|
302
|
+
"whatsapp": "WhatsApp",
|
|
303
|
+
"portal": "Portal / Hcode Class",
|
|
304
|
+
"marketplace": "Marketplace / Udemy",
|
|
305
|
+
"social": "Social / YouTube",
|
|
306
|
+
"accounts": "Configured Accounts",
|
|
307
|
+
"help": "Help"
|
|
308
|
+
},
|
|
309
|
+
"rows": {
|
|
310
|
+
"enabledTitle": "ticket.enabled",
|
|
311
|
+
"enabledDesc": "Enable ticket module and operational screens",
|
|
312
|
+
"codePrefixTitle": "ticket.code_prefix",
|
|
313
|
+
"codePrefixDesc": "Prefix used to generate ticket code",
|
|
314
|
+
"aiModeTitle": "ticket.default_ai_review_mode",
|
|
315
|
+
"aiModeDesc": "Default policy for AI draft review",
|
|
316
|
+
"visibilityTitle": "ticket.default_visibility",
|
|
317
|
+
"visibilityDesc": "Default visibility for new tickets",
|
|
318
|
+
"autoAssignTitle": "ticket.auto_assign_enabled",
|
|
319
|
+
"autoAssignDesc": "Automatically assign new tickets to operators",
|
|
320
|
+
"ownerTitle": "ticket.default_owner_person_id",
|
|
321
|
+
"ownerDesc": "Fallback owner person identifier",
|
|
322
|
+
"publicReplyTitle": "ticket.allow_public_reply",
|
|
323
|
+
"publicReplyDesc": "Allow outbound public replies",
|
|
324
|
+
"internalNotesTitle": "ticket.allow_internal_notes",
|
|
325
|
+
"internalNotesDesc": "Allow internal notes in timeline",
|
|
326
|
+
"reopenTitle": "ticket.default_reopen_on_customer_reply",
|
|
327
|
+
"reopenDesc": "Reopen ticket when customer replies",
|
|
328
|
+
"closeAfterTitle": "ticket.default_close_after_days_without_reply",
|
|
329
|
+
"closeAfterDesc": "Auto close ticket after inactivity"
|
|
330
|
+
},
|
|
331
|
+
"values": {
|
|
332
|
+
"disabled": "disabled",
|
|
333
|
+
"optional": "optional",
|
|
334
|
+
"required": "required",
|
|
335
|
+
"private": "private",
|
|
336
|
+
"public": "public"
|
|
337
|
+
},
|
|
338
|
+
"actions": {
|
|
339
|
+
"save": "Save settings"
|
|
340
|
+
},
|
|
341
|
+
"messages": {
|
|
342
|
+
"saved": "Settings saved successfully."
|
|
343
|
+
},
|
|
344
|
+
"validation": {
|
|
345
|
+
"codePrefixRequired": "Enter the code prefix.",
|
|
346
|
+
"ownerRequired": "Enter the owner identifier.",
|
|
347
|
+
"ownerNumeric": "Owner identifier must be numeric.",
|
|
348
|
+
"closeAfterRequired": "Enter days to auto-close.",
|
|
349
|
+
"closeAfterNumeric": "Auto-close days must be numeric."
|
|
350
|
+
},
|
|
351
|
+
"descriptions": {
|
|
352
|
+
"emailControls": "Controls: enabled, inbound_enabled, outbound_enabled, ai_enabled, ai_model, ai_auto_send, ai_require_human_review, append_ticket_code_to_subject, create_new_ticket_if_no_match.",
|
|
353
|
+
"whatsappControls": "Controls: enabled, inbound_enabled, outbound_enabled, ai_enabled, ai_model, ai_auto_send, ai_require_human_review, reopen_last_open_ticket, open_new_ticket_after_hours, window_hours.",
|
|
354
|
+
"portalControls": "Controls: enabled, ai_enabled, ai_model.",
|
|
355
|
+
"marketplaceControls": "Controls: enabled, ai_enabled, ai_model.",
|
|
356
|
+
"socialControls": "Controls: enabled, ai_enabled, ai_model.",
|
|
357
|
+
"accountsControls": "Per account overrides for enabled, ai_enabled, ai_model and ai_auto_send.",
|
|
358
|
+
"helpLine1": "AI auto send should be used with caution. If ai_require_human_review is enabled, auto send must remain disabled to keep operator approval in the loop.",
|
|
359
|
+
"helpLine2": "Channel account overrides take precedence over channel defaults when both are configured."
|
|
360
|
+
}
|
|
361
|
+
},
|
|
362
|
+
"roles": {
|
|
363
|
+
"title": "Roles And Permissions",
|
|
364
|
+
"description": "Permission matrix for ticket_admin, ticket_operator and ticket_analyst",
|
|
365
|
+
"breadcrumb": "Roles",
|
|
366
|
+
"cards": {
|
|
367
|
+
"adminTitle": "ticket_admin",
|
|
368
|
+
"adminDesc": "Full administrative and operational access including channels, settings, assignment, reports and AI governance.",
|
|
369
|
+
"operatorTitle": "ticket_operator",
|
|
370
|
+
"operatorDesc": "Operational access for inbox handling, replies, internal notes and status updates without global settings management.",
|
|
371
|
+
"analystTitle": "ticket_analyst",
|
|
372
|
+
"analystDesc": "Read-only access focused on dashboards, reports and ticket visibility."
|
|
373
|
+
},
|
|
374
|
+
"tableTitle": "Permission Matrix",
|
|
375
|
+
"columns": {
|
|
376
|
+
"permission": "Permission",
|
|
377
|
+
"admin": "ticket_admin",
|
|
378
|
+
"operator": "ticket_operator",
|
|
379
|
+
"analyst": "ticket_analyst"
|
|
380
|
+
}
|
|
381
|
+
},
|
|
382
|
+
"contextCard": {
|
|
383
|
+
"title": "Context",
|
|
384
|
+
"empty": "No structured context attached yet.",
|
|
385
|
+
"type": "Type:",
|
|
386
|
+
"source": "Source:",
|
|
387
|
+
"course": "Course:",
|
|
388
|
+
"section": "Section:",
|
|
389
|
+
"lesson": "Lesson:",
|
|
390
|
+
"video": "Video:",
|
|
391
|
+
"page": "Page:",
|
|
392
|
+
"openSource": "Open source reference"
|
|
393
|
+
},
|
|
394
|
+
"timeline": {
|
|
395
|
+
"title": "Timeline",
|
|
396
|
+
"internalNote": "internal note",
|
|
397
|
+
"directions": {
|
|
398
|
+
"inbound": "inbound",
|
|
399
|
+
"outbound": "outbound",
|
|
400
|
+
"system": "system"
|
|
401
|
+
}
|
|
402
|
+
},
|
|
403
|
+
"draftDialog": {
|
|
404
|
+
"title": "Edit AI Draft",
|
|
405
|
+
"description": "Review and adjust the suggestion before approval and send.",
|
|
406
|
+
"originalTitle": "Original requester message",
|
|
407
|
+
"placeholder": "Refine AI suggestion...",
|
|
408
|
+
"cancel": "Cancel",
|
|
409
|
+
"save": "Save Draft"
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
}
|