import { ChatFrag, ChatMessageFrag } from "./chat"; export const SupportCaseFrag = { fragments: { full: ` fragment SupportCaseFragment on SupportCase { id title chatId dateCreated dateAssigned dateClosed status creator { id username } staff { id nickname user { id username } } evaluation { id dateCreated score comment } } `, }, }; export const START_SUPPORT = ` query startSupport($partner: String) { supportChat(partnerTenantUsername: $partner) { ...ChatFragment } } ${ChatFrag.fragments.full} `; export const GET_SUPPORT_CHATS = ` query getSupportChats($partnerUsername: String, $updatedAfter: DateTime) { supportChats( partnerUsername: $partnerUsername updatedAfter: $updatedAfter ) { ...ChatFragment } } ${ChatFrag.fragments.full} `; export const GET_SUPPORT_CASES = ` query getSupportCases($status: String, $from: DateTime) { supportCases(status: $status, from: $from) { ...SupportCaseFragment } } ${SupportCaseFrag.fragments.full} `; export const CREATE_SUPPORT_CASE = ` mutation createSupportCase( $chatId: ID $messageId: ID $title: String! $customerUsername: String! $staffUsername: String $assignToMe: Boolean ) { createSupportCase( chatId: $chatId messageId: $messageId title: $title tenantCustomerUsername: $customerUsername tenantStaffUsername: $staffUsername assignToMe: $assignToMe ) { ...SupportCaseFragment } } ${SupportCaseFrag.fragments.full} `; export const CLOSE_SUPPORT_CASE = ` mutation closeSupportCase($id: ID!) { closeSupportCase(supportCaseId: $id) { ...SupportCaseFragment } } ${SupportCaseFrag.fragments.full} `; export const REQUEST_EVALUATION = ` mutation requestEvaluation($id: ID!, $text: String, $jsonContent: String) { sendEvaluationMsg( supportCaseId: $id text: $text jsonContent: $jsonContent ) { ...SupportCaseFragment } } ${SupportCaseFrag.fragments.full} `; export const EVALUATE_CASE = ` mutation evaluateCase($id: ID!, $score: Int!, $comment: String) { evaluateSupportCase(supportCaseId: $id, score: $score, comment: $comment) { ...SupportCaseFragment } } ${SupportCaseFrag.fragments.full} `; export const TAKE_CASE = ` mutation takeCase($id: ID!) { takeSupportCase(supportCaseId: $id) { ...SupportCaseFragment } } ${SupportCaseFrag.fragments.full} `; export const SEND_SYSTEM_MESSAGE = ` mutation sendSystemMessage( $chatId: ID! $message: String! $content: String ) { sendSystemMessage(chatId: $chatId, message: $message, content: $content) { ...MessageFragment } } ${ChatMessageFrag.fragments.full} `; export const SEND_PIC_MESSAGE = ` mutation sendPicMessage($chatId: ID!, $picUrl: String!, $to: ID!) { sendPicMessage(chatId: $chatId, picUrl: $picUrl, to: $to) { ...MessageFragment } } ${ChatMessageFrag.fragments.full} `; export const INIT_SUPPORT_CHAT = ` query startSupportChat($chatId: ID, $tenantId: ID, $partner: String) { supportChat( chatId: $chatId tenantId: $tenantId partnerTenantUsername: $partner ) { id creator { id username nickname iconUrl roles } partner { id username nickname iconUrl roles } lastMessage { id text } } messageTemplates(fromClient: true) { id name creator { username nickname } enabled dateCreated lastUpdated templateType content } tenant(tenantId: $tenantId) { id name } } `; export const UPDATE_USER = ` mutation UpdateUser($metadata: String) { updateUser(metadata: $metadata) { id username metadata } } `;