* feat: Adds model for scheduling messages * feat: Implement scheduled message handling and processing jobs * feat: Add ScheduledMessagesController and associated specs for managing scheduled messages * refactor: Simplify scheduled message job specs and improve metadata handling * feat: Add ScheduledMessagePolicy for managing access to scheduled messages * feat: Add routes for managing scheduled messages * feat: Add scheduled message event handling and broadcasting * feat: Add JSON views for scheduled messages creation, destruction, updating, and indexing * feat: Update scheduled message status and dispatch update event after message creation * feat: Ensure scheduled message updates trigger dispatch event * feat: Add mutation types for managing scheduled messages * feat: Add additionalAttributes prop to Message component and provider * feat: Implement scheduled message handling in ActionCable and Vuex store * feat: Add unit tests for scheduled messages actions and mutations * feat: implement scheduled messages functionality - Added support for scheduling messages in the conversation dashboard. - Introduced new components: ScheduledMessageModal and ScheduledMessages for managing scheduled messages. - Enhanced ReplyBottomPanel to include scheduling options. - Updated Base.vue to handle scheduled message styling. - Integrated Vuex store module for managing scheduled messages state. - Added necessary translations for scheduled messages in English and Portuguese. * feat: add pagination to scheduled messages index and update tests accordingly * chore: update scheduled messages specs for future time validation and response status * chore: enhance scheduled messages API with pagination and add skeleton loader component * feat: add create_scheduled_message action to automation rule attributes * feat: implement create_scheduled_message action and enhance attachment handling * feat: add scheduled message functionality with UI components and localization * test: enhance scheduledMessages mutations tests with meta handling and structure * chore: update label to display file name upon successful upload in AutomationFileInput component * feat: add initialAttachment prop to ScheduledMessageModal and update ReplyBox to pass attachment * chore: prepend_mod_with to ScheduledMessagesController for better module handling * fix: attachment visibility in ScheduledMessageItem component * chore: enhance ScheduledMessage model with validations and reduce controller load * refactor: simplify ScheduledMessagesAPI methods by removing unnecessary instance variable * chore: update event emission for scheduled message creation in ReplyBox and ScheduledMessageModal * refactor: update status configuration to use label keys * chore: update date formatting in ScheduledMessageItem component * refactor: collapse logic to checkOverflow and update related functionality * chore: add author indication for current user in scheduled messages * chore: enhance scheduled message metadata with author information and localization * fix: send message shortcut * chore: handle errors in scheduled message submission * chore: update scheduled message modal to use combined date and time input * chore: refactor scheduled messages handling to remove pagination and update related tests * fix: ensure scheduled messages update status and dispatch on failure * fix: update scheduled message due date logic and simplify sending checks * refactor: rename build_message method for send_message * fix: update scheduled message creation time and improve test reliability * chore: ignore unnecessary check * chore: add scheduled message metadata handling in message builder, add scheduled message factorie and update specs * refactor: use scheduled message factorie creation in specs * chore: streamline error handling in scheduled message job and remove dispatch logic * fix: change scheduled_messages association to destroy dependent records * refactor: remove unused attributes from scheduled message payload builder * chore: update scheduled message retrieval to use conversation association * chore: correct cron format for scheduled messages job * chore: remove migration for author_type in scheduled_messages * feat: enhance scheduled messages management with delete confirmation and error handling * chore: set cron poll interval to 10 seconds for improved scheduling precision * feat: include additional_attributes in message JSON response * feat: enhance scheduled message validation and localization support * chore: update scheduled message display * Merge branch 'main' into Cayo-Oliveira/CU-86aenh268/Mensagens-agendadas * feat: add scheduled message indicators and validation for message length * fix: remove unnecessary condition from line-clamp class binding * feat: update scheduled messages localization and enhance content validation * feat: update scheduled messages order, enhance scheduledAt computation, and add message association * fix: reorder condition for Facebook channel message length computation * fix: change detection for attachments in scheduled messages * fix: remove unnecessary colon from close-on-backdrop-click prop in ScheduledMessageModal * chore: add error handling for scheduled message deletion and update localization for delete failure * fix: enforce minimum delay of 1 minute for scheduled messages and update validation * fix: remove unused private property and improve locale formatting for scheduled messages * fix: adjust positioning of DropdownBody in ReplyBottomPanel and clean up schema foreign keys * docs: add scheduled messages management APIs and payload definitions --------- Co-authored-by: gabrieljablonski <contact@gabrieljablonski.com>
188 lines
7.5 KiB
JSON
188 lines
7.5 KiB
JSON
{
|
|
"AUTOMATION": {
|
|
"HEADER": "Automação",
|
|
"DESCRIPTION": "A automação pode substituir e simplificar processos existentes que requerem esforço manual, como a adição de etiquetas e a atribuição de conversas ao agente mais adequado. Isso permite que o time se concentre em seus pontos fortes e reduza o tempo gasto em tarefas rotineiras.",
|
|
"LEARN_MORE": "Aprenda mais sobre automação",
|
|
"HEADER_BTN_TXT": "Adicionar regra de automação",
|
|
"LOADING": "Buscando regras de automação",
|
|
"ADD": {
|
|
"TITLE": "Adicionar regra de automação",
|
|
"SUBMIT": "Criar",
|
|
"CANCEL_BUTTON_TEXT": "Cancelar",
|
|
"FORM": {
|
|
"NAME": {
|
|
"LABEL": "Nome da Regra",
|
|
"PLACEHOLDER": "Inserir nome da regra",
|
|
"ERROR": "O nome é obrigatório"
|
|
},
|
|
"DESC": {
|
|
"LABEL": "Descrição",
|
|
"PLACEHOLDER": "Inserir descrição de regra",
|
|
"ERROR": "Descrição obrigatória"
|
|
},
|
|
"EVENT": {
|
|
"LABEL": "Evento",
|
|
"PLACEHOLDER": "Por favor, selecione um",
|
|
"ERROR": "O campo evento é obrigatório"
|
|
},
|
|
"CONDITIONS": {
|
|
"LABEL": "Condições"
|
|
},
|
|
"ACTIONS": {
|
|
"LABEL": "Ações"
|
|
}
|
|
},
|
|
"CONDITION_BUTTON_LABEL": "Adicionar condição",
|
|
"ACTION_BUTTON_LABEL": "Adicionar ação",
|
|
"API": {
|
|
"SUCCESS_MESSAGE": "Regra de automação adicionada com sucesso",
|
|
"ERROR_MESSAGE": "Não foi possível criar uma regra de automação, por favor, tente novamente mais tarde"
|
|
}
|
|
},
|
|
"LIST": {
|
|
"TABLE_HEADER": {
|
|
"NAME": "Nome",
|
|
"DESCRIPTION": "Descrição",
|
|
"ACTIVE": "Ativo",
|
|
"CREATED_ON": "Criado em"
|
|
},
|
|
"404": "Nenhuma regra de automação encontrada"
|
|
},
|
|
"DELETE": {
|
|
"TITLE": "Excluir regra de automação",
|
|
"SUBMIT": "Excluir",
|
|
"CANCEL_BUTTON_TEXT": "Cancelar",
|
|
"CONFIRM": {
|
|
"TITLE": "Confirmar exclusão",
|
|
"MESSAGE": "Você tem certeza que deseja excluir? ",
|
|
"YES": "Sim, excluir ",
|
|
"NO": "Não, Mantenha "
|
|
},
|
|
"API": {
|
|
"SUCCESS_MESSAGE": "Regra de automação excluída com sucesso",
|
|
"ERROR_MESSAGE": "Não foi possível excluir uma regra de automação, por favor, tente novamente mais tarde"
|
|
}
|
|
},
|
|
"EDIT": {
|
|
"TITLE": "Editar regra de automação",
|
|
"SUBMIT": "Atualizar",
|
|
"CANCEL_BUTTON_TEXT": "Cancelar",
|
|
"API": {
|
|
"SUCCESS_MESSAGE": "Regra de automação atualizada com sucesso",
|
|
"ERROR_MESSAGE": "Não foi possível atualizar a regra de automação, por favor, tente novamente mais tarde"
|
|
}
|
|
},
|
|
"CLONE": {
|
|
"TOOLTIP": "Duplicar",
|
|
"API": {
|
|
"SUCCESS_MESSAGE": "Automação duplicada com sucesso",
|
|
"ERROR_MESSAGE": "Não foi possível duplicar regra de automação, por favor, tente novamente mais tarde"
|
|
}
|
|
},
|
|
"FORM": {
|
|
"EDIT": "Alterar",
|
|
"CREATE": "Criar",
|
|
"DELETE": "Excluir",
|
|
"CANCEL": "Cancelar",
|
|
"RESET_MESSAGE": "Alterar o evento irá redefinir as condições e eventos que você adicionou abaixo"
|
|
},
|
|
"CONDITION": {
|
|
"DELETE_MESSAGE": "Você precisa ter pelo menos uma condição para salvar",
|
|
"CONTACT_CUSTOM_ATTR_LABEL": "Atributos personalizados do contato",
|
|
"CONVERSATION_CUSTOM_ATTR_LABEL": "Atributos personalizados da conversa"
|
|
},
|
|
"ACTION": {
|
|
"DELETE_MESSAGE": "Você precisa ter pelo menos uma ação para salvar",
|
|
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "Escreva sua mensagem aqui",
|
|
"TEAM_DROPDOWN_PLACEHOLDER": "Selecione times",
|
|
"EMAIL_INPUT_PLACEHOLDER": "Insira o e-mail",
|
|
"URL_INPUT_PLACEHOLDER": "Insira a URL",
|
|
"SCHEDULED_MESSAGE_DELAY_LABEL": "Atraso (minutos)",
|
|
"SCHEDULED_MESSAGE_DELAY_PLACEHOLDER": "Insira o atraso em minutos"
|
|
},
|
|
"TOGGLE": {
|
|
"ACTIVATION_TITLE": "Ativar regra de automação",
|
|
"DEACTIVATION_TITLE": "Desativar regra de automação",
|
|
"ACTIVATION_DESCRIPTION": "Esta ação ativará a regra de automação '{automationName}'. Tem certeza que deseja continuar?",
|
|
"DEACTIVATION_DESCRIPTION": "Esta ação irá desativar a regra de automação '{automationName}'. Tem certeza que deseja continuar?",
|
|
"ACTIVATION_SUCCESFUL": "Regra de automação ativada com sucesso",
|
|
"DEACTIVATION_SUCCESFUL": "Regra de automação desativada com sucesso",
|
|
"ACTIVATION_ERROR": "Não foi possível ativar a automação, por favor tente novamente mais tarde",
|
|
"DEACTIVATION_ERROR": "Não foi possível desativar a automação, por favor, tente novamente mais tarde",
|
|
"CONFIRMATION_LABEL": "Sim",
|
|
"CANCEL_LABEL": "Não"
|
|
},
|
|
"ATTACHMENT": {
|
|
"UPLOAD_ERROR": "Não foi possível enviar o anexo, por favor, tente novamente",
|
|
"LABEL_IDLE": "Enviar Anexo",
|
|
"LABEL_UPLOADING": "Enviando...",
|
|
"LABEL_UPLOADED": "Upload feito com sucesso",
|
|
"LABEL_UPLOAD_FAILED": "Faha no envio"
|
|
},
|
|
"ERRORS": {
|
|
"ATTRIBUTE_KEY_REQUIRED": "A chave do atributo é necessária",
|
|
"FILTER_OPERATOR_REQUIRED": "Operador do filtro é necessário",
|
|
"VALUE_REQUIRED": "Valor obrigatório",
|
|
"VALUE_MUST_BE_BETWEEN_1_AND_998": "O valor deve ser entre 1 e 998",
|
|
"ACTION_PARAMETERS_REQUIRED": "Os parâmetros de ação são necessários",
|
|
"ATLEAST_ONE_CONDITION_REQUIRED": "Pelo menos uma condição é necessária",
|
|
"ATLEAST_ONE_ACTION_REQUIRED": "Pelo menos uma ação é necessária"
|
|
},
|
|
"NONE_OPTION": "Nenhuma",
|
|
"EVENTS": {
|
|
"CONVERSATION_CREATED": "Conversa Criada",
|
|
"CONVERSATION_UPDATED": "Conversa Atualizada",
|
|
"MESSAGE_CREATED": "Mensagem Criada",
|
|
"CONVERSATION_RESOLVED": "Conversa Resolvida",
|
|
"CONVERSATION_OPENED": "Conversa Aberta"
|
|
},
|
|
"ACTIONS": {
|
|
"ASSIGN_AGENT": "Atribuir ao Agente",
|
|
"ASSIGN_TEAM": "Atribuir um Time",
|
|
"ADD_LABEL": "Adicionar uma Etiqueta",
|
|
"REMOVE_LABEL": "Remover uma Etiqueta",
|
|
"SEND_EMAIL_TO_TEAM": "Enviar um e-mail para o Time",
|
|
"SEND_EMAIL_TRANSCRIPT": "Enviar uma transcrição por e-mail",
|
|
"MUTE_CONVERSATION": "Silenciar Conversa",
|
|
"SNOOZE_CONVERSATION": "Adiar Conversa",
|
|
"RESOLVE_CONVERSATION": "Resolver Conversa",
|
|
"SEND_WEBHOOK_EVENT": "Enviar evento de Webhook",
|
|
"SEND_ATTACHMENT": "Enviar Anexo",
|
|
"SEND_MESSAGE": "Enviar Mensagem",
|
|
"CREATE_SCHEDULED_MESSAGE": "Criar Mensagem Agendada",
|
|
"ADD_PRIVATE_NOTE": "Adicionar uma Nota Privada",
|
|
"CHANGE_PRIORITY": "Alterar Prioridade",
|
|
"ADD_SLA": "Adicionar SLA",
|
|
"OPEN_CONVERSATION": "Abrir conversa"
|
|
},
|
|
"MESSAGE_TYPES": {
|
|
"INCOMING": "Mensagem Recebida",
|
|
"OUTGOING": "Mensagem de Saída"
|
|
},
|
|
"PRIORITY_TYPES": {
|
|
"NONE": "Nenhuma",
|
|
"LOW": "Baixa",
|
|
"MEDIUM": "Média",
|
|
"HIGH": "Alta",
|
|
"URGENT": "Urgente"
|
|
},
|
|
"ATTRIBUTES": {
|
|
"MESSAGE_TYPE": "Tipo da Mensagem",
|
|
"MESSAGE_CONTAINS": "A mensagem contém",
|
|
"EMAIL": "E-mail",
|
|
"INBOX": "Caixa de Entrada",
|
|
"CONVERSATION_LANGUAGE": "Idioma da conversa",
|
|
"PHONE_NUMBER": "Número de Telefone",
|
|
"STATUS": "Status",
|
|
"BROWSER_LANGUAGE": "Idioma do navegador",
|
|
"MAIL_SUBJECT": "Assunto do e-mail",
|
|
"COUNTRY_NAME": "País/região",
|
|
"REFERER_LINK": "Link de origem",
|
|
"ASSIGNEE_NAME": "Agente atribuído",
|
|
"TEAM_NAME": "Time",
|
|
"PRIORITY": "Prioridade",
|
|
"LABELS": "Etiquetas"
|
|
}
|
|
}
|
|
}
|