885 lines
28 KiB
JSON
885 lines
28 KiB
JSON
{
|
|
"config": {
|
|
"step": {
|
|
"user": {
|
|
"title": "Bem-vindo ao TaskMate!",
|
|
"description": "Configure o seu sistema de gestão de tarefas familiar. Pode personalizar a moeda de pontos que as crianças vão ganhar.",
|
|
"data": {
|
|
"points_name": "Nome da moeda de pontos (ex: Estrelas, Moedas, Pontos)",
|
|
"points_icon": "Ícone dos pontos"
|
|
}
|
|
}
|
|
},
|
|
"error": {
|
|
"name_required": "O nome é obrigatório"
|
|
},
|
|
"abort": {
|
|
"already_configured": "O TaskMate já está configurado"
|
|
}
|
|
},
|
|
"selector": {
|
|
"chore_action": {
|
|
"options": {
|
|
"save": "Guardar alterações",
|
|
"re_enable": "Reativar tarefa",
|
|
"disable": "Desativar tarefa",
|
|
"delete": "Eliminar esta tarefa"
|
|
}
|
|
},
|
|
"reward_action": {
|
|
"options": {
|
|
"save": "Guardar alterações",
|
|
"delete": "Eliminar recompensa"
|
|
}
|
|
},
|
|
"time_category": {
|
|
"options": {
|
|
"morning": "Manhã",
|
|
"afternoon": "Tarde",
|
|
"evening": "Fim da tarde",
|
|
"night": "Noite",
|
|
"anytime": "Qualquer hora"
|
|
}
|
|
},
|
|
"schedule_mode": {
|
|
"options": {
|
|
"specific_days": "Dias específicos da semana",
|
|
"recurring": "Recorrente (a cada N dias/semanas/meses)",
|
|
"one_shot": "Tarefa única (um dia)"
|
|
}
|
|
},
|
|
"due_days_option": {
|
|
"options": {
|
|
"monday": "Segunda-feira",
|
|
"tuesday": "Terça-feira",
|
|
"wednesday": "Quarta-feira",
|
|
"thursday": "Quinta-feira",
|
|
"friday": "Sexta-feira",
|
|
"saturday": "Sábado",
|
|
"sunday": "Domingo"
|
|
}
|
|
},
|
|
"recurrence": {
|
|
"options": {
|
|
"every_2_days": "A cada 2 dias",
|
|
"weekly": "Semanal",
|
|
"every_2_weeks": "A cada 2 semanas",
|
|
"monthly": "Mensal",
|
|
"every_3_months": "A cada 3 meses",
|
|
"every_6_months": "A cada 6 meses"
|
|
}
|
|
},
|
|
"recurrence_day_option": {
|
|
"options": {
|
|
"monday": "Segunda-feira",
|
|
"tuesday": "Terça-feira",
|
|
"wednesday": "Quarta-feira",
|
|
"thursday": "Quinta-feira",
|
|
"friday": "Sexta-feira",
|
|
"saturday": "Sábado",
|
|
"sunday": "Domingo",
|
|
"any_day": "Qualquer dia"
|
|
}
|
|
},
|
|
"first_occurrence_mode": {
|
|
"options": {
|
|
"available_immediately": "Disponível imediatamente",
|
|
"wait_for_first_occurrence": "Aguardar primeira ocorrência agendada"
|
|
}
|
|
},
|
|
"streak_reset_mode": {
|
|
"options": {
|
|
"reset": "Reiniciar — sequência volta a 0 num dia falhado",
|
|
"pause": "Pausar — sequência preservada até próxima conclusão"
|
|
}
|
|
},
|
|
"visibility_operator": {
|
|
"options": {
|
|
"none": "Sem filtro — Mostrar sempre a tarefa",
|
|
"equals": "Igual — Mostrar quando o estado da entidade corresponde exatamente",
|
|
"not_equals": "Não igual — Mostrar quando o estado da entidade não corresponde",
|
|
"gte": "Maior ou igual (≥) — Mostrar quando valor numérico é ≥ alvo",
|
|
"lte": "Menor ou igual (≤) — Mostrar quando valor numérico é ≤ alvo",
|
|
"gt": "Maior que (>) — Mostrar quando valor numérico é > alvo",
|
|
"lt": "Menor que (<) — Mostrar quando valor numérico é < alvo"
|
|
}
|
|
},
|
|
"assignment_mode": {
|
|
"options": {
|
|
"everyone": "Todos — todas as crianças atribuídas veem a tarefa",
|
|
"alternating": "Alternado — alterna entre as crianças atribuídas, uma por dia",
|
|
"random": "Aleatório — escolhe aleatoriamente uma criança atribuída por dia",
|
|
"balanced": "Equilibrado — divide as tarefas equilibradas do dia igualmente entre as crianças atribuídas",
|
|
"first_come": "Quem chega primeiro — a primeira criança a concluir ganha; desaparece para as restantes",
|
|
"unassigned": "Não atribuído — nenhuma criança vê esta tarefa"
|
|
}
|
|
},
|
|
"task_group_policy": {
|
|
"options": {
|
|
"sticky": "Sticky — mesma criança para todas as tarefas do grupo",
|
|
"spread": "Spread — crianças diferentes no grupo hoje"
|
|
}
|
|
},
|
|
"task_group_action": {
|
|
"options": {
|
|
"save": "Guardar alterações",
|
|
"delete": "Eliminar grupo"
|
|
}
|
|
}
|
|
},
|
|
"services": {
|
|
"complete_chore": {
|
|
"name": "Concluir tarefa",
|
|
"description": "Marcar uma tarefa como concluída por uma criança",
|
|
"fields": {
|
|
"chore_id": {
|
|
"name": "ID da tarefa",
|
|
"description": "O ID da tarefa a concluir"
|
|
},
|
|
"child_id": {
|
|
"name": "ID da criança",
|
|
"description": "O ID da criança que conclui a tarefa"
|
|
}
|
|
}
|
|
},
|
|
"complete_bonus_subtask": {
|
|
"name": "Concluir subtarefa bónus",
|
|
"description": "Concluir uma subtarefa bónus depois de a tarefa principal estar concluída",
|
|
"fields": {
|
|
"chore_id": {
|
|
"name": "ID da tarefa",
|
|
"description": "O ID da tarefa principal"
|
|
},
|
|
"bonus_subtask_id": {
|
|
"name": "ID da subtarefa bónus",
|
|
"description": "O ID da subtarefa bónus a concluir"
|
|
},
|
|
"child_id": {
|
|
"name": "ID da criança",
|
|
"description": "O ID da criança que conclui a subtarefa bónus"
|
|
}
|
|
}
|
|
},
|
|
"approve_chore": {
|
|
"name": "Aprovar tarefa",
|
|
"description": "Aprovar uma tarefa concluída e atribuir pontos",
|
|
"fields": {
|
|
"completion_id": {
|
|
"name": "ID de conclusão",
|
|
"description": "O ID da conclusão da tarefa a aprovar"
|
|
}
|
|
}
|
|
},
|
|
"approve_all_chores": {
|
|
"name": "Aprovar todas as tarefas",
|
|
"description": "Aprovar todas as conclusões de tarefas pendentes (ou um conjunto específico) e atribuir pontos",
|
|
"fields": {
|
|
"completion_ids": {
|
|
"name": "IDs de conclusão",
|
|
"description": "IDs de conclusão específicos para aprovar; omita para aprovar todas as pendentes"
|
|
}
|
|
}
|
|
},
|
|
"reject_chore": {
|
|
"name": "Rejeitar tarefa",
|
|
"description": "Rejeitar uma tarefa concluída",
|
|
"fields": {
|
|
"completion_id": {
|
|
"name": "ID de conclusão",
|
|
"description": "O ID da conclusão da tarefa a rejeitar"
|
|
}
|
|
}
|
|
},
|
|
"undo_chore_approval": {
|
|
"name": "Anular aprovação de tarefa",
|
|
"description": "Anular a aprovação acidental de uma tarefa — remove os pontos atribuídos e devolve a conclusão a pendente para que possa ser aprovada novamente.",
|
|
"fields": {
|
|
"completion_id": {
|
|
"name": "ID de conclusão",
|
|
"description": "O ID da conclusão de tarefa aprovada a repor como pendente"
|
|
}
|
|
}
|
|
},
|
|
"undo_transaction": {
|
|
"name": "Anular transação",
|
|
"description": "Anular uma transação de pontos pelo seu ID — penalizações, bónus, ajustes manuais (adicionar/remover) e presentes (ambas as partes). As transações automáticas (bónus de fim de semana/sequência/semana perfeita, movimentos do mealheiro, desvalorização, juros) não podem ser anuladas.",
|
|
"fields": {
|
|
"transaction_id": {
|
|
"name": "ID da transação",
|
|
"description": "O ID da transação de pontos a reverter"
|
|
}
|
|
}
|
|
},
|
|
"claim_reward": {
|
|
"name": "Reclamar recompensa",
|
|
"description": "A criança reclama uma recompensa usando os seus pontos",
|
|
"fields": {
|
|
"reward_id": {
|
|
"name": "ID da recompensa",
|
|
"description": "O ID da recompensa a reclamar"
|
|
},
|
|
"child_id": {
|
|
"name": "ID da criança",
|
|
"description": "O ID da criança que reclama a recompensa"
|
|
}
|
|
}
|
|
},
|
|
"approve_reward": {
|
|
"name": "Aprovar recompensa",
|
|
"description": "Aprovar um pedido de recompensa",
|
|
"fields": {
|
|
"claim_id": {
|
|
"name": "ID do pedido",
|
|
"description": "O ID do pedido de recompensa a aprovar"
|
|
}
|
|
}
|
|
},
|
|
"allocate_points_to_pool": {
|
|
"name": "Alocar pontos ao mealheiro",
|
|
"description": "Mover pontos do saldo disponível de uma criança para o mealheiro de uma recompensa (bloqueado).",
|
|
"fields": {
|
|
"child_id": {
|
|
"name": "ID da criança",
|
|
"description": "O ID da criança que faz a alocação"
|
|
},
|
|
"reward_id": {
|
|
"name": "ID da recompensa",
|
|
"description": "O ID do mealheiro da recompensa onde depositar"
|
|
},
|
|
"points": {
|
|
"name": "Pontos",
|
|
"description": "Número de pontos a alocar (limitado pela capacidade do mealheiro e pelo saldo disponível)"
|
|
}
|
|
}
|
|
},
|
|
"add_points": {
|
|
"name": "Adicionar pontos",
|
|
"description": "Adicionar pontos de bónus a uma criança",
|
|
"fields": {
|
|
"child_id": {
|
|
"name": "ID da criança",
|
|
"description": "O ID da criança a quem adicionar pontos"
|
|
},
|
|
"points": {
|
|
"name": "Pontos",
|
|
"description": "O número de pontos a adicionar"
|
|
},
|
|
"reason": {
|
|
"name": "Motivo",
|
|
"description": "Motivo opcional para o bónus"
|
|
}
|
|
}
|
|
},
|
|
"remove_points": {
|
|
"name": "Remover pontos",
|
|
"description": "Remover pontos de uma criança (penalização)",
|
|
"fields": {
|
|
"child_id": {
|
|
"name": "ID da criança",
|
|
"description": "O ID da criança a quem remover pontos"
|
|
},
|
|
"points": {
|
|
"name": "Pontos",
|
|
"description": "O número de pontos a remover"
|
|
},
|
|
"reason": {
|
|
"name": "Motivo",
|
|
"description": "Motivo opcional para a penalização"
|
|
}
|
|
}
|
|
},
|
|
"reject_reward": {
|
|
"name": "Rejeitar recompensa",
|
|
"description": "Rejeitar um pedido de recompensa",
|
|
"fields": {
|
|
"claim_id": {
|
|
"name": "ID do pedido",
|
|
"description": "O ID do pedido de recompensa a rejeitar"
|
|
}
|
|
}
|
|
},
|
|
"preview_sound": {
|
|
"name": "Pré-visualizar som",
|
|
"description": "Pré-visualizar um efeito sonoro de conclusão no navegador",
|
|
"fields": {
|
|
"sound": {
|
|
"name": "Som",
|
|
"description": "O som a pré-visualizar"
|
|
}
|
|
}
|
|
},
|
|
"set_chore_order": {
|
|
"name": "Definir ordem das tarefas",
|
|
"description": "Definir a ordem de apresentação das tarefas para uma criança",
|
|
"fields": {
|
|
"child_id": {
|
|
"name": "ID da criança",
|
|
"description": "O ID da criança para definir a ordem das tarefas"
|
|
},
|
|
"chore_order": {
|
|
"name": "Ordem das tarefas",
|
|
"description": "Lista ordenada de IDs de tarefas"
|
|
}
|
|
}
|
|
},
|
|
"add_penalty": {
|
|
"name": "Adicionar penalização",
|
|
"description": "Criar uma nova definição de penalização",
|
|
"fields": {
|
|
"name": {
|
|
"name": "Nome",
|
|
"description": "O nome da penalização"
|
|
},
|
|
"points": {
|
|
"name": "Pontos",
|
|
"description": "O número de pontos a deduzir quando aplicada"
|
|
},
|
|
"description": {
|
|
"name": "Descrição",
|
|
"description": "Descrição opcional da penalização"
|
|
},
|
|
"icon": {
|
|
"name": "Ícone",
|
|
"description": "Ícone MDI para a penalização"
|
|
},
|
|
"assigned_to": {
|
|
"name": "Atribuída a",
|
|
"description": "Lista de IDs de crianças a quem esta penalização se aplica"
|
|
}
|
|
}
|
|
},
|
|
"update_penalty": {
|
|
"name": "Atualizar penalização",
|
|
"description": "Atualizar uma definição de penalização existente",
|
|
"fields": {
|
|
"penalty_id": {
|
|
"name": "ID da penalização",
|
|
"description": "O ID da penalização a atualizar"
|
|
},
|
|
"name": {
|
|
"name": "Nome",
|
|
"description": "Novo nome para a penalização"
|
|
},
|
|
"points": {
|
|
"name": "Pontos",
|
|
"description": "Novo valor de pontos"
|
|
},
|
|
"description": {
|
|
"name": "Descrição",
|
|
"description": "Nova descrição"
|
|
},
|
|
"icon": {
|
|
"name": "Ícone",
|
|
"description": "Novo ícone"
|
|
},
|
|
"assigned_to": {
|
|
"name": "Atribuída a",
|
|
"description": "Nova lista de IDs de crianças"
|
|
}
|
|
}
|
|
},
|
|
"remove_penalty": {
|
|
"name": "Remover penalização",
|
|
"description": "Remover uma definição de penalização",
|
|
"fields": {
|
|
"penalty_id": {
|
|
"name": "ID da penalização",
|
|
"description": "O ID da penalização a remover"
|
|
}
|
|
}
|
|
},
|
|
"apply_penalty": {
|
|
"name": "Aplicar penalização",
|
|
"description": "Aplicar uma penalização a uma criança, deduzindo pontos",
|
|
"fields": {
|
|
"penalty_id": {
|
|
"name": "ID da penalização",
|
|
"description": "O ID da penalização a aplicar"
|
|
},
|
|
"child_id": {
|
|
"name": "ID da criança",
|
|
"description": "O ID da criança a quem aplicar a penalização"
|
|
}
|
|
}
|
|
},
|
|
"add_bonus": {
|
|
"name": "Adicionar bónus",
|
|
"description": "Criar uma nova definição de bónus",
|
|
"fields": {
|
|
"name": {
|
|
"name": "Nome",
|
|
"description": "O nome do bónus"
|
|
},
|
|
"points": {
|
|
"name": "Pontos",
|
|
"description": "O número de pontos a atribuir quando aplicado"
|
|
},
|
|
"description": {
|
|
"name": "Descrição",
|
|
"description": "Descrição opcional do bónus"
|
|
},
|
|
"icon": {
|
|
"name": "Ícone",
|
|
"description": "Ícone MDI para o bónus"
|
|
},
|
|
"assigned_to": {
|
|
"name": "Atribuído a",
|
|
"description": "Lista de IDs de crianças a que este bónus se aplica"
|
|
}
|
|
}
|
|
},
|
|
"update_bonus": {
|
|
"name": "Atualizar bónus",
|
|
"description": "Atualizar uma definição de bónus existente",
|
|
"fields": {
|
|
"bonus_id": {
|
|
"name": "ID do bónus",
|
|
"description": "O ID do bónus a atualizar"
|
|
},
|
|
"name": {
|
|
"name": "Nome",
|
|
"description": "Novo nome para o bónus"
|
|
},
|
|
"points": {
|
|
"name": "Pontos",
|
|
"description": "Novo valor de pontos"
|
|
},
|
|
"description": {
|
|
"name": "Descrição",
|
|
"description": "Nova descrição"
|
|
},
|
|
"icon": {
|
|
"name": "Ícone",
|
|
"description": "Novo ícone"
|
|
},
|
|
"assigned_to": {
|
|
"name": "Atribuído a",
|
|
"description": "Nova lista de IDs de crianças"
|
|
}
|
|
}
|
|
},
|
|
"remove_bonus": {
|
|
"name": "Remover bónus",
|
|
"description": "Remover uma definição de bónus",
|
|
"fields": {
|
|
"bonus_id": {
|
|
"name": "ID do bónus",
|
|
"description": "O ID do bónus a remover"
|
|
}
|
|
}
|
|
},
|
|
"apply_bonus": {
|
|
"name": "Aplicar bónus",
|
|
"description": "Aplicar um bónus a uma criança, atribuindo pontos",
|
|
"fields": {
|
|
"bonus_id": {
|
|
"name": "ID do bónus",
|
|
"description": "O ID do bónus a aplicar"
|
|
},
|
|
"child_id": {
|
|
"name": "ID da criança",
|
|
"description": "O ID da criança a quem aplicar o bónus"
|
|
}
|
|
}
|
|
},
|
|
"add_chore": {
|
|
"name": "Adicionar tarefa",
|
|
"description": "Criar uma nova tarefa dinamicamente, normalmente a partir de uma automação ou script",
|
|
"fields": {
|
|
"name": {
|
|
"name": "Nome",
|
|
"description": "O nome da tarefa"
|
|
},
|
|
"description": {
|
|
"name": "Descrição",
|
|
"description": "Descrição opcional da tarefa"
|
|
},
|
|
"points": {
|
|
"name": "Pontos",
|
|
"description": "Pontos atribuídos quando esta tarefa é concluída"
|
|
},
|
|
"assigned_to": {
|
|
"name": "Atribuída a",
|
|
"description": "Lista de IDs de crianças a quem atribuir esta tarefa. Deixe vazio para atribuir a todas as crianças"
|
|
},
|
|
"time_category": {
|
|
"name": "Categoria de tempo",
|
|
"description": "Quando esta tarefa deve ser concluída: morning, afternoon, evening, night ou anytime"
|
|
},
|
|
"one_shot": {
|
|
"name": "Única",
|
|
"description": "Se verdadeiro, é uma tarefa única que expira após a conclusão ou no final do dia"
|
|
},
|
|
"requires_approval": {
|
|
"name": "Requer aprovação",
|
|
"description": "Se verdadeiro, um pai/mãe deve aprovar a conclusão antes de os pontos serem atribuídos"
|
|
}
|
|
}
|
|
},
|
|
"skip_chore": {
|
|
"name": "Skip Chore",
|
|
"description": "Advance today's rotation past the current assignee. Ephemeral — tomorrow's rotation resumes as normal.",
|
|
"fields": {
|
|
"chore_id": {
|
|
"name": "Chore ID",
|
|
"description": "The ID of the chore to skip"
|
|
}
|
|
}
|
|
},
|
|
"set_chore_manual_start": {
|
|
"name": "Set Manual Start Child",
|
|
"description": "Set which child starts a rotating chore. For alternating mode this reorders the pool; for random/balanced it only overrides today's assignee.",
|
|
"fields": {
|
|
"chore_id": {
|
|
"name": "Chore ID",
|
|
"description": "The ID of the chore to update"
|
|
},
|
|
"child_id": {
|
|
"name": "Child ID",
|
|
"description": "The ID of the child who should start the rotation"
|
|
}
|
|
}
|
|
},
|
|
"add_task_group": {
|
|
"name": "Add Task Group",
|
|
"description": "Create a task group (sticky = same child, spread = different children).",
|
|
"fields": {
|
|
"name": {
|
|
"name": "Name",
|
|
"description": "Display name for the group"
|
|
},
|
|
"policy": {
|
|
"name": "Policy",
|
|
"description": "sticky (same child) or spread (different children)"
|
|
},
|
|
"chore_ids": {
|
|
"name": "Chore IDs",
|
|
"description": "List of chore IDs in the group. For sticky, the first chore is the leader."
|
|
}
|
|
}
|
|
},
|
|
"update_task_group": {
|
|
"name": "Update Task Group",
|
|
"description": "Update a task group's name, policy, or membership.",
|
|
"fields": {
|
|
"group_id": {
|
|
"name": "Group ID",
|
|
"description": "The ID of the group to update"
|
|
},
|
|
"name": {
|
|
"name": "Name",
|
|
"description": "New display name"
|
|
},
|
|
"policy": {
|
|
"name": "Policy",
|
|
"description": "New policy (sticky or spread)"
|
|
},
|
|
"chore_ids": {
|
|
"name": "Chore IDs",
|
|
"description": "Replacement chore ID list. For sticky, the first chore is the leader."
|
|
}
|
|
}
|
|
},
|
|
"remove_task_group": {
|
|
"name": "Remove Task Group",
|
|
"description": "Delete a task group. Member chores are not affected.",
|
|
"fields": {
|
|
"group_id": {
|
|
"name": "Group ID",
|
|
"description": "The ID of the group to delete"
|
|
}
|
|
}
|
|
},
|
|
"start_timed_task": {
|
|
"name": "Iniciar tarefa temporizada",
|
|
"description": "Iniciar ou retomar o temporizador de uma tarefa temporizada",
|
|
"fields": {
|
|
"chore_id": {
|
|
"name": "ID da tarefa",
|
|
"description": "O ID da tarefa temporizada"
|
|
},
|
|
"child_id": {
|
|
"name": "ID da criança",
|
|
"description": "O ID da criança que inicia o temporizador"
|
|
}
|
|
}
|
|
},
|
|
"pause_timed_task": {
|
|
"name": "Pausar tarefa temporizada",
|
|
"description": "Pausar o temporizador de uma tarefa temporizada em curso",
|
|
"fields": {
|
|
"chore_id": {
|
|
"name": "ID da tarefa",
|
|
"description": "O ID da tarefa temporizada"
|
|
},
|
|
"child_id": {
|
|
"name": "ID da criança",
|
|
"description": "O ID da criança que pausa o temporizador"
|
|
}
|
|
}
|
|
},
|
|
"stop_timed_task": {
|
|
"name": "Parar tarefa temporizada",
|
|
"description": "Parar o temporizador de uma tarefa temporizada e submeter para aprovação",
|
|
"fields": {
|
|
"chore_id": {
|
|
"name": "ID da tarefa",
|
|
"description": "O ID da tarefa temporizada"
|
|
},
|
|
"child_id": {
|
|
"name": "ID da criança",
|
|
"description": "O ID da criança que para o temporizador"
|
|
}
|
|
}
|
|
},
|
|
"add_badge": {
|
|
"name": "Adicionar conquista",
|
|
"description": "Criar uma conquista personalizada.",
|
|
"fields": {
|
|
"name": {
|
|
"name": "Nome",
|
|
"description": "O nome de apresentação da conquista"
|
|
},
|
|
"description": {
|
|
"name": "Descrição",
|
|
"description": "Descrição de como a conquista é ganha"
|
|
},
|
|
"icon": {
|
|
"name": "Ícone",
|
|
"description": "Ícone da conquista (ex.: mdi:beach)"
|
|
},
|
|
"tier": {
|
|
"name": "Nível",
|
|
"description": "Nível da conquista: bronze, prata, ouro ou platina"
|
|
},
|
|
"point_bonus": {
|
|
"name": "Bónus de pontos",
|
|
"description": "Pontos creditados à criança quando a conquista é ganha"
|
|
},
|
|
"criteria": {
|
|
"name": "Critérios",
|
|
"description": "Lista de dicionários metric / operator / value. Vazio = apenas atribuição manual."
|
|
},
|
|
"assigned_to": {
|
|
"name": "Atribuída a",
|
|
"description": "Lista de IDs de crianças (vazio = todas)"
|
|
},
|
|
"notify_on_earn": {
|
|
"name": "Notificar ao ganhar",
|
|
"description": "Enviar uma notificação quando a conquista é ganha"
|
|
}
|
|
}
|
|
},
|
|
"update_badge": {
|
|
"name": "Atualizar conquista",
|
|
"description": "Atualizar uma conquista existente. Para as integradas, apenas point_bonus, tier, assigned_to, enabled e notify_on_earn são editáveis.",
|
|
"fields": {
|
|
"badge_id": {
|
|
"name": "ID da conquista",
|
|
"description": "O ID da conquista a atualizar"
|
|
},
|
|
"name": {
|
|
"name": "Nome",
|
|
"description": "Novo nome de apresentação da conquista"
|
|
},
|
|
"description": {
|
|
"name": "Descrição",
|
|
"description": "Nova descrição da conquista"
|
|
},
|
|
"icon": {
|
|
"name": "Ícone",
|
|
"description": "Novo ícone da conquista"
|
|
},
|
|
"tier": {
|
|
"name": "Nível",
|
|
"description": "Nível da conquista: bronze, prata, ouro ou platina"
|
|
},
|
|
"point_bonus": {
|
|
"name": "Bónus de pontos",
|
|
"description": "Pontos creditados à criança quando a conquista é ganha"
|
|
},
|
|
"criteria": {
|
|
"name": "Critérios",
|
|
"description": "Lista de dicionários metric / operator / value. Vazio = apenas atribuição manual."
|
|
},
|
|
"assigned_to": {
|
|
"name": "Atribuída a",
|
|
"description": "Lista de IDs de crianças (vazio = todas)"
|
|
},
|
|
"enabled": {
|
|
"name": "Ativada",
|
|
"description": "Se a conquista está ativa"
|
|
},
|
|
"notify_on_earn": {
|
|
"name": "Notificar ao ganhar",
|
|
"description": "Enviar uma notificação quando a conquista é ganha"
|
|
}
|
|
}
|
|
},
|
|
"remove_badge": {
|
|
"name": "Remover conquista",
|
|
"description": "Remover uma conquista personalizada. As integradas não podem ser removidas.",
|
|
"fields": {
|
|
"badge_id": {
|
|
"name": "ID da conquista",
|
|
"description": "O ID da conquista a remover"
|
|
}
|
|
}
|
|
},
|
|
"award_badge_manually": {
|
|
"name": "Atribuir conquista manualmente",
|
|
"description": "Atribuir manualmente uma conquista a uma criança.",
|
|
"fields": {
|
|
"badge_id": {
|
|
"name": "ID da conquista",
|
|
"description": "O ID da conquista a atribuir"
|
|
},
|
|
"child_id": {
|
|
"name": "ID da criança",
|
|
"description": "O ID da criança que recebe a conquista"
|
|
}
|
|
}
|
|
},
|
|
"revoke_badge": {
|
|
"name": "Revogar conquista",
|
|
"description": "Revogar uma conquista atribuída. Se um bónus de pontos foi creditado, é revertido.",
|
|
"fields": {
|
|
"awarded_badge_id": {
|
|
"name": "ID da conquista atribuída",
|
|
"description": "O ID da conquista atribuída a revogar"
|
|
}
|
|
}
|
|
},
|
|
"rebuild_badges": {
|
|
"name": "Reconstruir conquistas",
|
|
"description": "Reavaliar todas as conquistas de todas as crianças silenciosamente (sem notificações nem bónus de pontos)."
|
|
},
|
|
"apply_mandatory_penalty": {
|
|
"name": "Aplicar penalização obrigatória",
|
|
"description": "Deduz os pontos de penalização configurados por uma tarefa obrigatória falhada e remove o item de revisão.",
|
|
"fields": {
|
|
"miss_id": {
|
|
"name": "ID da falha",
|
|
"description": "O ID do item de revisão da tarefa obrigatória falhada"
|
|
}
|
|
}
|
|
},
|
|
"choose_avatar": {
|
|
"name": "Escolher avatar",
|
|
"description": "Uma criança muda para um avatar que desbloqueou.",
|
|
"fields": {
|
|
"child_id": {
|
|
"name": "ID da criança",
|
|
"description": "O ID da criança"
|
|
},
|
|
"icon": {
|
|
"name": "Ícone do avatar",
|
|
"description": "O ícone mdi de um avatar do catálogo desbloqueado (ex.: mdi:rocket-launch)."
|
|
}
|
|
}
|
|
},
|
|
"dismiss_mandatory_chore": {
|
|
"name": "Dispensar tarefa obrigatória",
|
|
"description": "Remove o item de revisão de uma tarefa obrigatória falhada sem penalização.",
|
|
"fields": {
|
|
"miss_id": {
|
|
"name": "ID da falha",
|
|
"description": "O ID do item de revisão da tarefa obrigatória falhada"
|
|
}
|
|
}
|
|
},
|
|
"gift_points": {
|
|
"name": "Oferecer pontos",
|
|
"description": "Transfere pontos disponíveis de uma criança para outra (controlado pelos pais).",
|
|
"fields": {
|
|
"from_child_id": {
|
|
"name": "ID da criança de origem",
|
|
"description": "O ID da criança que envia os pontos"
|
|
},
|
|
"to_child_id": {
|
|
"name": "ID da criança de destino",
|
|
"description": "O ID da criança que recebe os pontos"
|
|
},
|
|
"points": {
|
|
"name": "Pontos",
|
|
"description": "O número de pontos a transferir"
|
|
}
|
|
}
|
|
},
|
|
"postpone_mandatory_chore": {
|
|
"name": "Adiar tarefa obrigatória",
|
|
"description": "Dá a uma tarefa obrigatória falhada outro período (ou amanhã) sem penalização e remove o item de revisão.",
|
|
"fields": {
|
|
"miss_id": {
|
|
"name": "ID da falha",
|
|
"description": "O ID do item de revisão da tarefa obrigatória falhada"
|
|
}
|
|
}
|
|
},
|
|
"request_swap": {
|
|
"name": "Pedir troca de tarefa",
|
|
"description": "Uma criança pede para assumir a atribuição de rotação de hoje de uma tarefa (sujeito a aprovação dos pais).",
|
|
"fields": {
|
|
"chore_id": {
|
|
"name": "ID da tarefa",
|
|
"description": "O ID da tarefa a assumir"
|
|
},
|
|
"requester_id": {
|
|
"name": "ID da criança solicitante",
|
|
"description": "O ID da criança que pede a troca"
|
|
}
|
|
}
|
|
},
|
|
"test_notification": {
|
|
"name": "Notificação de teste",
|
|
"description": "Envia uma notificação de exemplo do tipo indicado aos destinatários ativados (ignora o interruptor principal para que o encaminhamento possa ser verificado).",
|
|
"fields": {
|
|
"type_id": {
|
|
"name": "Tipo de notificação",
|
|
"description": "ID do tipo de notificação, p. ex. pending_chore_approval, badge_earned, streak_milestone"
|
|
}
|
|
}
|
|
},
|
|
"record_allowance_payout": {
|
|
"name": "Registar pagamento de mesada",
|
|
"description": "Deduzir pontos e registar um pagamento de mesada real no histórico (taxa de conversão fixa; controlado pelos pais).",
|
|
"fields": {
|
|
"child_id": {
|
|
"name": "ID da criança",
|
|
"description": "O ID da criança que recebe o pagamento"
|
|
},
|
|
"points": {
|
|
"name": "Pontos",
|
|
"description": "Pontos a converter em dinheiro e a deduzir"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"entity": {
|
|
"sensor": {
|
|
"child_stats": {
|
|
"unit_of_measurement": "tarefas"
|
|
},
|
|
"child_badges": {
|
|
"unit_of_measurement": "medalhas"
|
|
}
|
|
},
|
|
"number": {
|
|
"weekend_multiplier": {
|
|
"name": "Multiplicador de fim de semana"
|
|
},
|
|
"perfect_week_bonus": {
|
|
"name": "Bónus de semana perfeita"
|
|
}
|
|
},
|
|
"select": {
|
|
"streak_reset_mode": {
|
|
"name": "Modo de reposição de sequência"
|
|
},
|
|
"card_design": {
|
|
"name": "Design do cartão"
|
|
}
|
|
}
|
|
}
|
|
}
|