561 lines
20 KiB
TypeScript
561 lines
20 KiB
TypeScript
export default {
|
|
app: {
|
|
name: 'Hotel OMS',
|
|
theme: 'Theme',
|
|
language: 'Language',
|
|
navigationAria: 'Reservation navigation',
|
|
healthUp: 'Backend connected',
|
|
healthDown: 'Backend offline',
|
|
healthChecking: 'Checking',
|
|
},
|
|
auth: {
|
|
loginTitle: 'Sign in',
|
|
loginSubtitle: 'Use your system account to enter the TH Hotel reservation workspace.',
|
|
username: 'Username',
|
|
password: 'Password',
|
|
loginSubmit: 'Sign in',
|
|
loggingIn: 'Signing in',
|
|
loginFailed: 'The username or password is incorrect.',
|
|
logout: 'Sign out',
|
|
currentUser: 'Current user',
|
|
currentHotel: 'Current hotel',
|
|
unauthorizedTitle: 'No access',
|
|
unauthorizedMessage: 'Your account does not have permission to access this page or action.',
|
|
backHome: 'Back to available page',
|
|
},
|
|
nav: {
|
|
orders: 'Order list',
|
|
taskQueue: 'Task queue',
|
|
sourceMessages: 'Source messages',
|
|
systemStatus: 'System status',
|
|
orderDetail: 'Order detail',
|
|
taskDetail: 'Task detail',
|
|
sourceMessageConversation: 'Email conversation',
|
|
debugEml: 'Debug EML',
|
|
systemSettings: 'System settings',
|
|
systemUsers: 'Users',
|
|
systemRoles: 'Roles',
|
|
systemMenus: 'Menus',
|
|
systemHotels: 'Hotels',
|
|
systemAudits: 'Admin audits',
|
|
},
|
|
common: {
|
|
loading: 'Loading',
|
|
noData: 'No data',
|
|
endpointPending: 'Endpoint pending',
|
|
endpointMissing: 'Endpoint field pending',
|
|
all: 'All',
|
|
unknownStatus: 'Unknown status',
|
|
unknownTaskType: 'Unknown task type',
|
|
unknownTaskSubtype: 'Unknown task subtype',
|
|
unknownReadonlyReason: 'Not processable yet',
|
|
unknownActorType: 'Unknown actor',
|
|
unknownAuditAction: 'Unknown action',
|
|
unknownOperation: 'Unknown operation',
|
|
previousPage: 'Previous',
|
|
nextPage: 'Next',
|
|
pageStatus: 'Page {current} / {total}',
|
|
pageSize: 'Page size',
|
|
},
|
|
notFound: {
|
|
title: 'Page unavailable',
|
|
message: 'The frontend page for this menu or link is not available yet.',
|
|
backHome: 'Back to available page',
|
|
},
|
|
systemAdmin: {
|
|
title: 'System settings',
|
|
subtitle: 'Maintain users, roles, permissions, menus, and hotel records',
|
|
navigationAria: 'System settings navigation',
|
|
common: {
|
|
keyword: 'Keyword',
|
|
viewDetail: 'View detail',
|
|
selectRow: 'Select a row to view detail',
|
|
create: 'Create',
|
|
save: 'Save',
|
|
edit: 'Edit',
|
|
yes: 'Yes',
|
|
no: 'No',
|
|
},
|
|
status: {
|
|
ACTIVE: 'Active',
|
|
DISABLED: 'Disabled',
|
|
},
|
|
users: {
|
|
title: 'User filters',
|
|
tableTitle: 'Users',
|
|
detailTitle: 'User detail',
|
|
createTitle: 'Create user',
|
|
totalSuffix: 'users',
|
|
keywordPlaceholder: 'Username / display name / email',
|
|
userStatus: 'User status',
|
|
username: 'Username',
|
|
initialPassword: 'Initial password',
|
|
displayName: 'Display name',
|
|
email: 'Email',
|
|
phone: 'Phone',
|
|
roles: 'Roles',
|
|
hotels: 'Authorized hotels',
|
|
defaultHotel: 'Default hotel',
|
|
saveRoles: 'Save roles',
|
|
saveHotels: 'Save hotels',
|
|
resetPassword: 'Reset password',
|
|
temporaryPassword: 'Temporary password:',
|
|
created: 'User created',
|
|
columns: {
|
|
user: 'User',
|
|
status: 'Status',
|
|
roles: 'Roles',
|
|
defaultHotel: 'Default hotel',
|
|
},
|
|
},
|
|
roles: {
|
|
title: 'Role filters',
|
|
tableTitle: 'Roles',
|
|
detailTitle: 'Role detail',
|
|
createTitle: 'Create custom role',
|
|
totalSuffix: 'roles',
|
|
keywordPlaceholder: 'Role code / role name',
|
|
roleStatus: 'Role status',
|
|
roleCode: 'Role code',
|
|
roleName: 'Role name',
|
|
builtinReadonly: 'Built-in roles are maintained by the system bootstrap matrix and cannot be edited here.',
|
|
savePermissions: 'Save permissions',
|
|
columns: {
|
|
role: 'Role',
|
|
status: 'Status',
|
|
builtin: 'Built-in',
|
|
permissions: 'Permissions',
|
|
users: 'Users',
|
|
},
|
|
},
|
|
menus: {
|
|
title: 'Menu filters',
|
|
createTitle: 'Create menu',
|
|
editTitle: 'Edit menu',
|
|
tableTitle: 'Menus',
|
|
totalSuffix: 'menus',
|
|
keywordPlaceholder: 'Menu code / name / route',
|
|
menuStatus: 'Menu status',
|
|
menuCode: 'Menu code',
|
|
menuName: 'Menu name',
|
|
componentKey: 'Component key',
|
|
iconKey: 'Icon key',
|
|
columns: {
|
|
menu: 'Menu',
|
|
route: 'Route',
|
|
permission: 'Permission',
|
|
visible: 'Visible',
|
|
status: 'Status',
|
|
sort: 'Sort',
|
|
knownRoute: 'Known route',
|
|
},
|
|
},
|
|
hotels: {
|
|
title: 'Hotel filters',
|
|
createTitle: 'Create hotel',
|
|
editTitle: 'Edit hotel',
|
|
tableTitle: 'Hotels',
|
|
totalSuffix: 'hotels',
|
|
keywordPlaceholder: 'Hotel ID / hotel name',
|
|
hotelStatus: 'Hotel status',
|
|
hotelId: 'Hotel ID',
|
|
hotelName: 'Hotel name',
|
|
saveStatus: 'Save status',
|
|
singleActiveRule: 'Single-hotel mode allows only one ACTIVE hotel. Newly created hotels are disabled by default.',
|
|
columns: {
|
|
hotel: 'Hotel',
|
|
status: 'Status',
|
|
timeZone: 'Time zone',
|
|
authorizedUsers: 'Authorized users',
|
|
sort: 'Sort',
|
|
},
|
|
},
|
|
audits: {
|
|
title: 'Audit filters',
|
|
tableTitle: 'Admin audit data',
|
|
totalSuffix: 'audit records',
|
|
targetType: 'Target type',
|
|
targetId: 'Target ID',
|
|
action: 'Action',
|
|
columns: {
|
|
action: 'Action',
|
|
target: 'Target',
|
|
actor: 'Actor',
|
|
occurredAt: 'Occurred at',
|
|
},
|
|
},
|
|
},
|
|
workbench: {
|
|
title: 'Order workbench',
|
|
subtitle: 'Review, filter, and handle Reservation order tasks',
|
|
filters: 'Filters',
|
|
dateRange: 'Date range',
|
|
businessKey: 'Business key / temporary code',
|
|
orderStatus: 'Order status',
|
|
taskStatus: 'Task status',
|
|
taskCardType: 'Task card type',
|
|
reset: 'Reset',
|
|
tableTitle: 'Orders / tasks',
|
|
columns: {
|
|
businessKey: 'Business key',
|
|
orderStatus: 'Order status',
|
|
currentTask: 'Current task',
|
|
taskStatus: 'Task status',
|
|
updatedAt: 'Last updated',
|
|
operation: 'Action',
|
|
},
|
|
view: 'View',
|
|
totalPrefix: 'Total',
|
|
totalSuffix: 'task leads',
|
|
},
|
|
orderList: {
|
|
title: 'Order list',
|
|
subtitle: 'Review Reservation work by order',
|
|
keyword: 'Group Code / Confirmation No.',
|
|
keywordPlaceholder: 'Group code / confirmation no.',
|
|
groupCode: 'Group code',
|
|
groupCodePlaceholder: 'Enter group code',
|
|
confirmationNumber: 'Confirmation no.',
|
|
confirmationNumberPlaceholder: 'Enter confirmation no.',
|
|
tableTitle: 'Order data',
|
|
totalSuffix: 'orders',
|
|
viewDetail: 'View detail',
|
|
continueTask: 'Continue task',
|
|
noOpenTask: 'No open task',
|
|
endpointPending: 'The order list endpoint is pending backend implementation. No fixture data is shown.',
|
|
columns: {
|
|
order: 'Order',
|
|
status: 'Status',
|
|
openTasks: 'Open tasks',
|
|
createdAt: 'Created at',
|
|
},
|
|
},
|
|
order: {
|
|
summary: 'Order summary',
|
|
taskQueue: 'Order task queue',
|
|
sourceMessage: 'Source message',
|
|
businessKeySource: 'Business key source',
|
|
updatedAt: 'Last updated',
|
|
guestName: 'Guest',
|
|
arrivalDate: 'Arrival date',
|
|
roomType: 'Room type',
|
|
amount: 'Amount',
|
|
openTask: 'Handle task',
|
|
groupCode: 'Group Code',
|
|
confirmationNumber: 'Confirmation No.',
|
|
temporaryOrderNo: 'Temporary order no.',
|
|
blockCode: 'Block Code',
|
|
createdAt: 'Created at',
|
|
conversationMessageCount: 'Conversation messages',
|
|
sourceSummaryPending: 'Source email summary fields for the order task timeline are pending backend support. Open a task for available source details.',
|
|
},
|
|
taskList: {
|
|
title: 'Task list',
|
|
subtitle: 'Review Reservation work by task queue',
|
|
keyword: 'Order / email keyword',
|
|
keywordPlaceholder: 'Order no. / email keyword',
|
|
taskType: 'Task type',
|
|
taskSubtype: 'Task subtype',
|
|
tableTitle: 'Task data',
|
|
totalSuffix: 'tasks',
|
|
noSourceSubject: 'No source subject',
|
|
canProcess: 'Processable',
|
|
cannotProcess: 'Not processable',
|
|
queueParticipation: 'Queue participation',
|
|
queueAll: 'All queue states',
|
|
queueIncluded: 'In queue',
|
|
queueExcluded: 'Not in queue',
|
|
viewTask: 'View task',
|
|
viewOrder: 'View order',
|
|
viewConversation: 'View email conversation',
|
|
sourceOnlyOrderLabel: 'Source message only',
|
|
hiddenTechnicalOrder: 'No visible order',
|
|
columns: {
|
|
task: 'Task',
|
|
order: 'Order',
|
|
card: 'Task card',
|
|
status: 'Status',
|
|
source: 'Source email',
|
|
queue: 'Queue',
|
|
},
|
|
},
|
|
task: {
|
|
title: 'Task card',
|
|
fieldContract: 'Field contract',
|
|
evidence: 'Evidence',
|
|
saveDraft: 'Save draft',
|
|
confirm: 'Confirm task',
|
|
blocked: 'Blocked',
|
|
readOnly: 'Read only',
|
|
operaOperations: 'OPERA simulation',
|
|
audits: 'Audit timeline',
|
|
noOperations: 'OPERA simulation operations are created after confirmation.',
|
|
noAudits: 'No audit records yet.',
|
|
execute: 'Execute',
|
|
retry: 'Retry',
|
|
simulateFailure: 'Simulate failure',
|
|
fieldNotes: 'Field notes',
|
|
emptyValue: 'Empty',
|
|
attachments: 'Attachments',
|
|
fieldAreaFallback: 'Basic information',
|
|
savedLocally: 'Draft saved',
|
|
confirmedLocally: 'Task confirmed',
|
|
validationFailed: 'Fix field errors first',
|
|
validation: {
|
|
required: '{field} is required',
|
|
enum: '{field} must use one of the allowed options',
|
|
date: '{field} must use YYYY-MM-DD',
|
|
number: '{field} must be a number',
|
|
},
|
|
viewOrder: 'View order',
|
|
viewConversation: 'View email conversation',
|
|
parentGroup: 'Parent Group',
|
|
sourceMessageId: 'Source message ID',
|
|
sourceSubject: 'Source subject',
|
|
sourceSender: 'Sender',
|
|
sourceReceivedAt: 'Received at',
|
|
sourceSummaryPending: 'Source email summary fields are pending backend support',
|
|
sourceOnlyResult: 'Source message entry result',
|
|
sourceOnlyReadonly: 'This task only shows the source message entry result. It does not enter order handling, field editing, or OPERA operations.',
|
|
sourceOnlyNoOpera: 'This task type does not involve OPERA operations.',
|
|
routeInfo: 'Route and processing',
|
|
resultType: 'Result type',
|
|
aiTaskType: 'AI task type',
|
|
systemTaskType: 'System task type',
|
|
taskCardType: 'Task card type',
|
|
taskSubtype: 'Task subtype',
|
|
routeCode: 'Route code',
|
|
systemProcessCategory: 'System process category',
|
|
reviewStatus: 'Review status',
|
|
entryResultCode: 'Entry result code',
|
|
entryResultMeaning: 'Result meaning',
|
|
entryResultDescription: 'Result description',
|
|
entryResultSourceMessageId: 'Result source message ID',
|
|
rawAnswer: 'SuperAgent raw answer',
|
|
agentAssessment: 'AI raw fields',
|
|
sourceNotification: 'Source message notification',
|
|
manualReviewData: 'Manual review data',
|
|
manualReviewEvidence: 'Manual review evidence',
|
|
manualReviewEvidenceFallback: 'Confirm the Parent Group identity from the source email and candidates.',
|
|
manualReviewMissingFields: 'Missing fields',
|
|
manualReviewBlockingPoints: 'Blocking points',
|
|
manualReviewConflictingPoints: 'Conflicting points',
|
|
manualReviewSuggestedActions: 'Suggested actions',
|
|
manualReviewEvidenceToCheck: 'Evidence to check',
|
|
parentIdentityCandidates: 'Parent Group candidates',
|
|
parentIdentityCandidate: 'Candidate',
|
|
noParentIdentityCandidates: 'No Parent Group candidates yet. Backend should expose context_used.parent_identity_candidates.',
|
|
adapterContractErrors: 'Adapter contract errors',
|
|
unhandledIntents: 'Unhandled intents',
|
|
noSourceOnlyResult: 'No source message entry result is available.',
|
|
manualResolution: {
|
|
title: 'Manual review resolution',
|
|
description: 'Fill missing fields on the original task card. The backend validates and unblocks the task after submission.',
|
|
pendingStatus: 'Pending review',
|
|
resolvedTitle: 'Review resolved',
|
|
reasonCode: 'Reason code',
|
|
reviewInstruction: 'Review instruction',
|
|
confirmedOrderId: 'Confirmed order ID',
|
|
fieldValuePlaceholder: 'Enter the confirmed value',
|
|
noSupportedMissingFields: 'The current missing fields are not supported for frontend resolution yet. Confirm field mapping with backend.',
|
|
fieldRequired: 'Fill the missing field values and confirmed order ID',
|
|
reason: 'Resolution note',
|
|
reasonPlaceholder: 'Optional note for the manual decision',
|
|
submit: 'Submit review result',
|
|
succeeded: 'Manual review resolved. Task status has been refreshed.',
|
|
},
|
|
manualConversion: {
|
|
title: 'Manual conversion',
|
|
description: 'Convert a Fallback / manual review task into a processable reservation task.',
|
|
targetTaskType: 'Target task type',
|
|
targetOrder: 'Target order',
|
|
targetOrderHelp: 'Update or cancel tasks must select a non-deleted order.',
|
|
targetOrderKeyword: 'Target order search',
|
|
targetOrderKeywordPlaceholder: 'Group code, confirmation no., or order keyword',
|
|
searchTargetOrders: 'Search orders',
|
|
noTargetOrderCandidates: 'Enter a keyword and search for target orders',
|
|
orderDeletedDisabled: 'Deleted orders cannot be selected',
|
|
newBookingHint: 'New booking conversion does not require a target order; the backend will reassign by task context.',
|
|
reason: 'Reason',
|
|
reasonPlaceholder: 'Optional note for the manual decision',
|
|
submit: 'Convert task',
|
|
targetOrderRequired: 'Select a target order',
|
|
succeeded: 'Manual conversion completed: {taskType}, target order {orderId}',
|
|
orderId: 'Order ID',
|
|
},
|
|
},
|
|
conversation: {
|
|
title: 'Email conversation detail',
|
|
subtitle: 'Review all messages in the source email conversation',
|
|
endpointPending: 'The email conversation detail endpoint is pending backend implementation. No fixture data is shown.',
|
|
subject: 'Conversation subject',
|
|
messageCount: 'Messages',
|
|
channel: 'Channel',
|
|
firstReceivedAt: 'First received',
|
|
lastReceivedAt: 'Last received',
|
|
emptyBody: 'Empty message body',
|
|
attachments: 'Attachments / inline images',
|
|
unnamedAttachment: 'Unnamed attachment',
|
|
relatedOrders: 'Related orders',
|
|
relatedTasks: 'Related tasks',
|
|
},
|
|
debugEml: {
|
|
title: 'Debug EML upload',
|
|
subtitle: 'Upload one .eml email and review SourceMessage and SuperAgent debug results',
|
|
uploadConfig: 'Upload configuration',
|
|
hotelId: 'Hotel ID',
|
|
debugUploadKey: 'Debug upload key',
|
|
runLabel: 'Run label',
|
|
emlFile: '.eml file',
|
|
submit: 'Submit debug run',
|
|
submitting: 'Waiting for SuperAgent',
|
|
executionStatus: 'Execution status',
|
|
status: 'Status',
|
|
debugRunId: 'Debug run ID',
|
|
backendStatus: 'Backend status',
|
|
backendMessage: 'Backend message',
|
|
waitingSuperAgent: 'Parsing the email and waiting for SuperAgent',
|
|
systemStages: 'System stages',
|
|
superAgentTrace: 'SuperAgent Trace',
|
|
traceToolName: 'Tool',
|
|
traceInputSummary: 'Input summary',
|
|
traceOutputSummary: 'Output summary',
|
|
traceStatus: 'Status',
|
|
traceTime: 'Time',
|
|
sourceTrace: 'SourceMessage trace',
|
|
sourceMessageId: 'SourceMessage ID',
|
|
sourceProvider: 'Source provider',
|
|
externalMessageId: 'External message ID',
|
|
externalConversationId: 'External conversation ID',
|
|
mailPreview: 'Email preview',
|
|
noSafeHtml: 'No safe HTML body is available',
|
|
uploadedMedia: 'Uploaded media',
|
|
unnamedMedia: 'Unnamed media',
|
|
rawHtml: 'Raw processed HTML',
|
|
superAgentResult: 'SuperAgent result',
|
|
superAgentSessionId: 'SuperAgent session ID',
|
|
superAgentRunId: 'SuperAgent run ID',
|
|
parsedJson: 'Parsed JSON',
|
|
rawAnswer: 'Raw answer',
|
|
warnings: 'Warnings',
|
|
debugPayload: 'Debug payload',
|
|
statuses: {
|
|
idle: 'Idle',
|
|
uploading: 'Running',
|
|
succeeded: 'Succeeded',
|
|
failed: 'Failed',
|
|
},
|
|
errors: {
|
|
REQUEST_FIELD_REQUIRED: 'Required fields are missing. Check hotel ID, file, or request parameters',
|
|
EML_FILE_REQUIRED: 'Choose an .eml email file',
|
|
EML_FILE_TOO_LARGE: 'The email file exceeds the backend limit',
|
|
INVALID_FILE_TYPE: 'Only .eml email files are supported',
|
|
DEBUG_UPLOAD_KEY_INVALID: 'The debug upload key is missing or invalid',
|
|
EML_PARSE_FAILED: 'The email file could not be parsed',
|
|
OSS_UPLOAD_FAILED: 'OSS upload failed. Contact backend support',
|
|
SUPERAGENT_OPEN_API_FAILED: 'SuperAgent call failed. SourceMessage may already be captured',
|
|
DEBUG_EML_RUN_FAILED: 'Debug EML run failed internally',
|
|
UNKNOWN: 'Debug EML upload failed',
|
|
},
|
|
},
|
|
status: {
|
|
TEMPORARY: 'Temporary',
|
|
ACTIVE: 'Active',
|
|
ENDED: 'Ended',
|
|
LOGIC_DELETED: 'Deleted',
|
|
PENDING_CONFIRM: 'Pending confirmation',
|
|
READY: 'Ready',
|
|
EXECUTING: 'Executing',
|
|
FAILED: 'Failed',
|
|
COMPLETED: 'Completed',
|
|
PENDING: 'Pending',
|
|
SUCCEEDED: 'Succeeded',
|
|
BLOCKED: 'Blocked',
|
|
SKIPPED: 'Skipped',
|
|
},
|
|
cardType: {
|
|
NEW_BOOKING: 'New booking',
|
|
UPDATE_BOOKING: 'Update booking',
|
|
CANCEL_BOOKING: 'Cancel booking',
|
|
CANCEL_ALLOTMENT: 'Cancel Parent Group allotment',
|
|
VOUCHER: 'Voucher',
|
|
ROOMING_LIST: 'Rooming list',
|
|
AMEND_GROUP_CODE: 'Amend group code',
|
|
TRACE_NOTE: 'Trace / notes',
|
|
TA_RECORD: 'TA record',
|
|
MESSAGE_NOTIFICATION: 'Message notification',
|
|
INFORMATIONAL_MESSAGE: 'Message notification (legacy)',
|
|
SOURCE_MESSAGE_REVIEW_NOTIFICATION: 'Source message notification',
|
|
SOURCE_MESSAGE_ONLY: 'Source message only',
|
|
MANUAL_REVIEW: 'Manual review',
|
|
FALLBACK_REVIEW: 'Manual review',
|
|
},
|
|
taskSubtype: {
|
|
NEW_BOOKING: 'New booking',
|
|
UPDATE_BOOKING: 'Update booking',
|
|
CANCEL_BOOKING: 'Cancel booking',
|
|
RATE_CHANGE: 'Rate change',
|
|
UPDATE_STAY_DATES: 'Update stay dates',
|
|
UPDATE_ROOM_TYPE: 'Update room type',
|
|
UPDATE_FIX_CHARGE: 'Update fixed charge',
|
|
CANCEL_ALLOTMENT_CONTROL_BLOCK: 'Cancel Parent Group control block',
|
|
NEW_GROUP_BLOCK: 'New group block',
|
|
NEW_FIT_RESERVATION: 'New FIT reservation',
|
|
MANUAL_REVIEW: 'Manual review',
|
|
S10: 'Pure informational email (S10)',
|
|
S99: 'Business material package unavailable (S99)',
|
|
S000: 'Pure informational email',
|
|
S999: 'Business material package unavailable',
|
|
},
|
|
resultType: {
|
|
NORMAL_TASK: 'Normal task',
|
|
MANUAL_REVIEW: 'Manual review',
|
|
SOURCE_MESSAGE_REVIEW_NOTIFICATION: 'Source message notification',
|
|
ADAPTER_CONTRACT_ERROR: 'Adapter contract error',
|
|
UNHANDLED_CURRENT_INTENT: 'Unhandled intent',
|
|
},
|
|
systemProcessCategory: {
|
|
BUSINESS_TASK: 'Business task',
|
|
SOURCE_MESSAGE_NOTIFICATION: 'Source message notification',
|
|
ADAPTER_CONTRACT_ERROR: 'Adapter contract error',
|
|
UNHANDLED_CURRENT_INTENT: 'Unhandled intent',
|
|
},
|
|
readonlyReason: {
|
|
PROCESSABLE: 'Processable',
|
|
PREVIOUS_TASK_NOT_FINISHED: 'Previous task is not finished',
|
|
TASK_FINISHED: 'Task finished',
|
|
TASK_READ_ONLY: 'Task is read only',
|
|
ORDER_CLOSED: 'Order closed',
|
|
QUEUE_EXCLUDED: 'Not in queue',
|
|
BLOCKED: 'Blocked',
|
|
MANUAL_REVIEW_REQUIRED: 'Manual review required',
|
|
},
|
|
actorType: {
|
|
USER: 'User',
|
|
SYSTEM: 'System',
|
|
AI: 'AI',
|
|
AGENT: 'Agent',
|
|
BACKEND: 'Backend service',
|
|
},
|
|
auditAction: {
|
|
TASK_CREATED: 'Task created',
|
|
TASK_LOADED: 'Task loaded',
|
|
TASK_CONFIRMED: 'Task confirmed',
|
|
TASK_CONFIRM: 'Task confirmed',
|
|
DRAFT_SAVED: 'Draft saved',
|
|
TASK_UPDATED: 'Task updated',
|
|
OPERA_EXECUTED: 'OPERA executed',
|
|
OPERA_RETRIED: 'OPERA retried',
|
|
MANUAL_REVIEW_CREATED: 'Manual review created',
|
|
MANUAL_REVIEW_CONVERT: 'Manual conversion',
|
|
MANUAL_REVIEW_RESOLVED: 'Manual review resolved',
|
|
},
|
|
operaOperation: {
|
|
CREATE_RESERVATION: 'Create reservation',
|
|
UPDATE_RESERVATION: 'Update reservation',
|
|
CANCEL_RESERVATION: 'Cancel reservation',
|
|
UPDATE_ROOMING_LIST: 'Update rooming list',
|
|
ADD_TRACE_NOTE: 'Add trace note',
|
|
},
|
|
}
|