1053 lines
25 KiB
YAML
1053 lines
25 KiB
YAML
complete_chore:
|
||
name: Complete Chore
|
||
description: Mark a chore as completed by a child
|
||
fields:
|
||
chore_id:
|
||
name: Chore ID
|
||
description: The ID of the chore to complete
|
||
required: true
|
||
selector:
|
||
text:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child completing the chore
|
||
required: true
|
||
selector:
|
||
text:
|
||
as_parent:
|
||
name: As parent
|
||
description: Complete on behalf of the child and award points immediately, bypassing approval.
|
||
required: false
|
||
default: false
|
||
selector:
|
||
boolean:
|
||
photo_url:
|
||
name: Photo URL
|
||
description: Optional URL or path to a photo submitted as evidence for the completion (e.g. a camera snapshot). Shown to the parent during approval.
|
||
required: false
|
||
selector:
|
||
text:
|
||
|
||
complete_bonus_subtask:
|
||
name: Complete Bonus Sub-task
|
||
description: Complete a bonus sub-task after the parent chore is done
|
||
fields:
|
||
chore_id:
|
||
name: Chore ID
|
||
description: The ID of the parent chore
|
||
required: true
|
||
selector:
|
||
text:
|
||
bonus_subtask_id:
|
||
name: Bonus Sub-task ID
|
||
description: The ID of the bonus sub-task to complete
|
||
required: true
|
||
selector:
|
||
text:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child completing the bonus sub-task
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
approve_chore:
|
||
name: Approve Chore
|
||
description: Approve a completed chore and award points
|
||
fields:
|
||
completion_id:
|
||
name: Completion ID
|
||
description: The ID of the chore completion to approve
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
approve_all_chores:
|
||
name: Approve All Chores
|
||
description: Approve all pending chore completions (or a specific set) and award points
|
||
fields:
|
||
completion_ids:
|
||
name: Completion IDs
|
||
description: Specific completion IDs to approve; omit to approve all pending
|
||
required: false
|
||
selector:
|
||
object:
|
||
|
||
reject_chore:
|
||
name: Reject Chore
|
||
description: Reject a completed chore
|
||
fields:
|
||
completion_id:
|
||
name: Completion ID
|
||
description: The ID of the chore completion to reject
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
apply_mandatory_penalty:
|
||
name: Apply Mandatory Penalty
|
||
description: Deduct the configured penalty points for a missed mandatory chore and clear the review item.
|
||
fields:
|
||
miss_id:
|
||
name: Miss ID
|
||
description: The ID of the mandatory-miss review item
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
postpone_mandatory_chore:
|
||
name: Postpone Mandatory Chore
|
||
description: Give a missed mandatory chore another period (or tomorrow) without a penalty, and clear the review item.
|
||
fields:
|
||
miss_id:
|
||
name: Miss ID
|
||
description: The ID of the mandatory-miss review item
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
dismiss_mandatory_chore:
|
||
name: Dismiss Mandatory Chore
|
||
description: Clear a missed mandatory chore review item with no penalty.
|
||
fields:
|
||
miss_id:
|
||
name: Miss ID
|
||
description: The ID of the mandatory-miss review item
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
undo_transaction:
|
||
name: Undo Transaction
|
||
description: Reverse a points transaction by its ID — penalties, bonuses, manual add/remove adjustments and gifts (both legs). Automatic transactions (weekend/streak/perfect-week bonuses, pool moves, decay, interest) can't be undone.
|
||
fields:
|
||
transaction_id:
|
||
name: Transaction ID
|
||
description: The ID of the points transaction to reverse
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
undo_chore_approval:
|
||
name: Undo Chore Approval
|
||
description: Reverse an accidental chore approval — removes the awarded points and returns the completion to pending so it can be approved again.
|
||
fields:
|
||
completion_id:
|
||
name: Completion ID
|
||
description: The ID of the approved chore completion to revert to pending
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
test_notification:
|
||
name: Test Notification
|
||
description: Send a sample notification of the given type to its enabled recipients (ignores the master on/off so routing can be verified).
|
||
fields:
|
||
type_id:
|
||
name: Notification type
|
||
description: "Notification type id, e.g. pending_chore_approval, badge_earned, streak_milestone"
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
record_allowance_payout:
|
||
name: Record Allowance Payout
|
||
description: Deduct points and record a real-money allowance payout in the ledger (fixed conversion rate; parent-controlled).
|
||
fields:
|
||
child_id:
|
||
name: Child ID
|
||
required: true
|
||
selector:
|
||
text:
|
||
points:
|
||
name: Points
|
||
description: Points to convert to cash and deduct.
|
||
required: true
|
||
selector:
|
||
number:
|
||
min: 1
|
||
max: 100000
|
||
mode: box
|
||
|
||
gift_points:
|
||
name: Gift Points
|
||
description: Transfer spendable points from one child to another (parent-controlled).
|
||
fields:
|
||
from_child_id:
|
||
name: From child ID
|
||
required: true
|
||
selector:
|
||
text:
|
||
to_child_id:
|
||
name: To child ID
|
||
required: true
|
||
selector:
|
||
text:
|
||
points:
|
||
name: Points
|
||
required: true
|
||
selector:
|
||
number:
|
||
min: 1
|
||
max: 10000
|
||
mode: box
|
||
|
||
request_swap:
|
||
name: Request Chore Swap
|
||
description: A child requests to take over today's rotation assignment of a chore (pending parent approval).
|
||
fields:
|
||
chore_id:
|
||
name: Chore ID
|
||
required: true
|
||
selector:
|
||
text:
|
||
requester_id:
|
||
name: Requester child ID
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
choose_avatar:
|
||
name: Choose Avatar
|
||
description: A child switches to an avatar they have unlocked.
|
||
fields:
|
||
child_id:
|
||
name: Child ID
|
||
required: true
|
||
selector:
|
||
text:
|
||
icon:
|
||
name: Avatar icon
|
||
description: The mdi icon of an unlocked catalogue avatar (e.g. mdi:rocket-launch).
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
claim_reward:
|
||
name: Claim Reward
|
||
description: Child claims a reward using their points
|
||
fields:
|
||
reward_id:
|
||
name: Reward ID
|
||
description: The ID of the reward to claim
|
||
required: true
|
||
selector:
|
||
text:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child claiming the reward
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
approve_reward:
|
||
name: Approve Reward
|
||
description: Approve a reward claim
|
||
fields:
|
||
claim_id:
|
||
name: Claim ID
|
||
description: The ID of the reward claim to approve
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
allocate_points_to_pool:
|
||
name: Allocate Points to Pool
|
||
description: Move points from a child's spendable balance into a reward's savings pool (locked).
|
||
fields:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child making the allocation
|
||
required: true
|
||
selector:
|
||
text:
|
||
reward_id:
|
||
name: Reward ID
|
||
description: The ID of the reward pool to deposit into
|
||
required: true
|
||
selector:
|
||
text:
|
||
points:
|
||
name: Points
|
||
description: Number of points to allocate (capped at pool capacity and spendable balance)
|
||
required: true
|
||
selector:
|
||
number:
|
||
min: 1
|
||
max: 10000
|
||
mode: box
|
||
|
||
add_points:
|
||
name: Add Points
|
||
description: Add bonus points to a child
|
||
fields:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child to add points to
|
||
required: true
|
||
selector:
|
||
text:
|
||
points:
|
||
name: Points
|
||
description: The number of points to add
|
||
required: true
|
||
selector:
|
||
number:
|
||
min: 1
|
||
max: 10000
|
||
mode: box
|
||
reason:
|
||
name: Reason
|
||
description: Optional reason for the bonus
|
||
required: false
|
||
selector:
|
||
text:
|
||
|
||
remove_points:
|
||
name: Remove Points
|
||
description: Remove points from a child (penalty)
|
||
fields:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child to remove points from
|
||
required: true
|
||
selector:
|
||
text:
|
||
points:
|
||
name: Points
|
||
description: The number of points to remove
|
||
required: true
|
||
selector:
|
||
number:
|
||
min: 1
|
||
max: 10000
|
||
mode: box
|
||
reason:
|
||
name: Reason
|
||
description: Optional reason for the penalty
|
||
required: false
|
||
selector:
|
||
text:
|
||
|
||
reject_reward:
|
||
name: Reject Reward
|
||
description: Reject a reward claim (no points deducted as approval was pending)
|
||
fields:
|
||
claim_id:
|
||
name: Claim ID
|
||
description: The ID of the reward claim to reject
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
preview_sound:
|
||
name: Preview Sound
|
||
description: Preview a completion sound effect in the browser
|
||
fields:
|
||
sound:
|
||
name: Sound
|
||
description: The sound to preview
|
||
required: true
|
||
selector:
|
||
select:
|
||
options:
|
||
- "none"
|
||
- "coin"
|
||
- "levelup"
|
||
- "fanfare"
|
||
- "chime"
|
||
- "powerup"
|
||
- "undo"
|
||
- "fart1"
|
||
- "fart2"
|
||
- "fart3"
|
||
- "fart4"
|
||
- "fart5"
|
||
- "fart6"
|
||
- "fart7"
|
||
- "fart8"
|
||
- "fart9"
|
||
- "fart10"
|
||
- "fart_random"
|
||
|
||
set_chore_order:
|
||
name: Set Chore Order
|
||
description: Set the display order of chores for a child
|
||
fields:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child to set chore order for
|
||
required: true
|
||
selector:
|
||
text:
|
||
chore_order:
|
||
name: Chore Order
|
||
description: Ordered list of chore IDs
|
||
required: true
|
||
selector:
|
||
object:
|
||
|
||
add_penalty:
|
||
name: Add Penalty
|
||
description: Create a new penalty definition
|
||
fields:
|
||
name:
|
||
name: Name
|
||
description: The name of the penalty
|
||
required: true
|
||
selector:
|
||
text:
|
||
points:
|
||
name: Points
|
||
description: The number of points to deduct when applied
|
||
required: true
|
||
selector:
|
||
number:
|
||
min: 1
|
||
max: 10000
|
||
mode: box
|
||
description:
|
||
name: Description
|
||
description: Optional description of the penalty
|
||
required: false
|
||
selector:
|
||
text:
|
||
icon:
|
||
name: Icon
|
||
description: MDI icon for the penalty
|
||
required: false
|
||
selector:
|
||
icon:
|
||
assigned_to:
|
||
name: Assigned To
|
||
description: List of child IDs this penalty applies to (empty for all)
|
||
required: false
|
||
selector:
|
||
object:
|
||
|
||
update_penalty:
|
||
name: Update Penalty
|
||
description: Update an existing penalty definition
|
||
fields:
|
||
penalty_id:
|
||
name: Penalty ID
|
||
description: The ID of the penalty to update
|
||
required: true
|
||
selector:
|
||
text:
|
||
name:
|
||
name: Name
|
||
description: New name for the penalty
|
||
required: false
|
||
selector:
|
||
text:
|
||
points:
|
||
name: Points
|
||
description: New points value for the penalty
|
||
required: false
|
||
selector:
|
||
number:
|
||
min: 1
|
||
max: 10000
|
||
mode: box
|
||
description:
|
||
name: Description
|
||
description: New description for the penalty
|
||
required: false
|
||
selector:
|
||
text:
|
||
icon:
|
||
name: Icon
|
||
description: New icon for the penalty
|
||
required: false
|
||
selector:
|
||
icon:
|
||
assigned_to:
|
||
name: Assigned To
|
||
description: New list of child IDs this penalty applies to
|
||
required: false
|
||
selector:
|
||
object:
|
||
|
||
remove_penalty:
|
||
name: Remove Penalty
|
||
description: Remove a penalty definition
|
||
fields:
|
||
penalty_id:
|
||
name: Penalty ID
|
||
description: The ID of the penalty to remove
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
apply_penalty:
|
||
name: Apply Penalty
|
||
description: Apply a penalty to a child, deducting points
|
||
fields:
|
||
penalty_id:
|
||
name: Penalty ID
|
||
description: The ID of the penalty to apply
|
||
required: true
|
||
selector:
|
||
text:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child to apply the penalty to
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
add_bonus:
|
||
name: Add Bonus
|
||
description: Create a new bonus definition
|
||
fields:
|
||
name:
|
||
name: Name
|
||
description: The name of the bonus
|
||
required: true
|
||
selector:
|
||
text:
|
||
points:
|
||
name: Points
|
||
description: The number of points to award when applied
|
||
required: true
|
||
selector:
|
||
number:
|
||
min: 1
|
||
max: 10000
|
||
mode: box
|
||
description:
|
||
name: Description
|
||
description: Optional description of the bonus
|
||
required: false
|
||
selector:
|
||
text:
|
||
icon:
|
||
name: Icon
|
||
description: MDI icon for the bonus
|
||
required: false
|
||
selector:
|
||
icon:
|
||
assigned_to:
|
||
name: Assigned To
|
||
description: List of child IDs this bonus applies to (empty for all)
|
||
required: false
|
||
selector:
|
||
object:
|
||
|
||
update_bonus:
|
||
name: Update Bonus
|
||
description: Update an existing bonus definition
|
||
fields:
|
||
bonus_id:
|
||
name: Bonus ID
|
||
description: The ID of the bonus to update
|
||
required: true
|
||
selector:
|
||
text:
|
||
name:
|
||
name: Name
|
||
description: New name for the bonus
|
||
required: false
|
||
selector:
|
||
text:
|
||
points:
|
||
name: Points
|
||
description: New points value for the bonus
|
||
required: false
|
||
selector:
|
||
number:
|
||
min: 1
|
||
max: 10000
|
||
mode: box
|
||
description:
|
||
name: Description
|
||
description: New description for the bonus
|
||
required: false
|
||
selector:
|
||
text:
|
||
icon:
|
||
name: Icon
|
||
description: New icon for the bonus
|
||
required: false
|
||
selector:
|
||
icon:
|
||
assigned_to:
|
||
name: Assigned To
|
||
description: New list of child IDs this bonus applies to
|
||
required: false
|
||
selector:
|
||
object:
|
||
|
||
remove_bonus:
|
||
name: Remove Bonus
|
||
description: Remove a bonus definition
|
||
fields:
|
||
bonus_id:
|
||
name: Bonus ID
|
||
description: The ID of the bonus to remove
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
apply_bonus:
|
||
name: Apply Bonus
|
||
description: Apply a bonus to a child, awarding points
|
||
fields:
|
||
bonus_id:
|
||
name: Bonus ID
|
||
description: The ID of the bonus to apply
|
||
required: true
|
||
selector:
|
||
text:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child to apply the bonus to
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
add_chore:
|
||
name: Add Chore
|
||
description: Create a new chore dynamically, typically from an automation or script
|
||
fields:
|
||
name:
|
||
name: Name
|
||
description: The name of the chore
|
||
required: true
|
||
selector:
|
||
text:
|
||
description:
|
||
name: Description
|
||
description: Optional description of the chore
|
||
required: false
|
||
selector:
|
||
text:
|
||
points:
|
||
name: Points
|
||
description: Points awarded when this chore is completed
|
||
required: false
|
||
default: 10
|
||
selector:
|
||
number:
|
||
min: 1
|
||
max: 10000
|
||
mode: box
|
||
assigned_to:
|
||
name: Assigned To
|
||
description: List of child IDs to assign this chore to. Leave empty to assign to all children
|
||
required: false
|
||
selector:
|
||
object:
|
||
time_category:
|
||
name: Time Category
|
||
description: When this chore should be completed
|
||
required: false
|
||
default: anytime
|
||
selector:
|
||
select:
|
||
options:
|
||
- morning
|
||
- afternoon
|
||
- evening
|
||
- night
|
||
- anytime
|
||
difficulty:
|
||
name: Difficulty
|
||
description: Difficulty tier; scales awarded points by the tier multiplier (medium = ×1.0 baseline)
|
||
required: false
|
||
default: medium
|
||
selector:
|
||
select:
|
||
options:
|
||
- easy
|
||
- medium
|
||
- hard
|
||
one_shot:
|
||
name: One-Shot
|
||
description: If true, this is a one-time chore that expires after being completed or at the end of the day
|
||
required: false
|
||
default: false
|
||
selector:
|
||
boolean:
|
||
requires_approval:
|
||
name: Requires Approval
|
||
description: If true, a parent must approve the completion before points are awarded
|
||
required: false
|
||
default: true
|
||
selector:
|
||
boolean:
|
||
expires_in_minutes:
|
||
name: Expires in (minutes)
|
||
description: >-
|
||
Make this a reactive chore with a deadline this many minutes from now — e.g. the washing
|
||
machine finished, empty it within 30 minutes. The chore disappears and is disabled once the
|
||
deadline passes. 0 = no deadline.
|
||
required: false
|
||
default: 0
|
||
selector:
|
||
number:
|
||
min: 0
|
||
max: 10080
|
||
mode: box
|
||
unit_of_measurement: min
|
||
speed_bonus_points:
|
||
name: Speed bonus points
|
||
description: Extra points awarded if the chore is completed before the deadline. Needs expires_in_minutes.
|
||
required: false
|
||
default: 0
|
||
selector:
|
||
number:
|
||
min: 0
|
||
max: 10000
|
||
mode: box
|
||
|
||
read_aloud:
|
||
name: Read Chores Aloud
|
||
description: >-
|
||
Speak a child's outstanding chores to a media player — "Ella, you have three things left...".
|
||
Wording is set by the read-aloud templates in the TaskMate panel settings.
|
||
fields:
|
||
child_id:
|
||
name: Child ID
|
||
required: true
|
||
selector:
|
||
text:
|
||
media_player:
|
||
name: Media player
|
||
description: Where to speak. Falls back to the default set in Settings.
|
||
required: false
|
||
selector:
|
||
entity:
|
||
domain: media_player
|
||
tts_entity:
|
||
name: Text-to-speech entity
|
||
description: Which TTS service to use. Falls back to Settings, then to the only one installed.
|
||
required: false
|
||
selector:
|
||
entity:
|
||
domain: tts
|
||
message:
|
||
name: Message override
|
||
description: Say this instead of the generated summary.
|
||
required: false
|
||
selector:
|
||
text:
|
||
|
||
spin_roulette:
|
||
name: Spin Chore Roulette
|
||
description: >-
|
||
Pick a random outstanding chore for a child at a points multiplier. Opt-in — enable it and set
|
||
the multiplier and daily spin allowance in the TaskMate panel settings.
|
||
fields:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child spinning
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
skip_chore:
|
||
name: Skip Chore
|
||
description: Skip today's assigned child for a rotating chore and move the pointer to the next child in the pool. Ephemeral — tomorrow the rotation resumes its normal schedule.
|
||
fields:
|
||
chore_id:
|
||
name: Chore ID
|
||
description: The ID of the chore to skip
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
set_chore_manual_start:
|
||
name: Set Manual Start Child
|
||
description: Set which child the rotation starts with for a rotating chore. For alternating mode this reorders the pool and resets the anchor; for random/balanced it overrides today's cached assignee only.
|
||
fields:
|
||
chore_id:
|
||
name: Chore ID
|
||
description: The ID of the chore to update
|
||
required: true
|
||
selector:
|
||
text:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child who should start the rotation
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
add_task_group:
|
||
name: Add Task Group
|
||
description: Create a task group that coordinates assignments across chores (sticky = same child, spread = different children).
|
||
fields:
|
||
name:
|
||
name: Name
|
||
description: Display name for the group
|
||
required: true
|
||
selector:
|
||
text:
|
||
policy:
|
||
name: Policy
|
||
description: sticky (same child) or spread (different children)
|
||
required: true
|
||
default: sticky
|
||
selector:
|
||
select:
|
||
options:
|
||
- sticky
|
||
- spread
|
||
chore_ids:
|
||
name: Chore IDs
|
||
description: List of chore IDs to include in the group. For sticky, the first chore is the leader.
|
||
required: false
|
||
selector:
|
||
object:
|
||
|
||
update_task_group:
|
||
name: Update Task Group
|
||
description: Update a task group's name, policy, or chore membership.
|
||
fields:
|
||
group_id:
|
||
name: Group ID
|
||
description: The ID of the group to update
|
||
required: true
|
||
selector:
|
||
text:
|
||
name:
|
||
name: Name
|
||
description: New display name
|
||
required: false
|
||
selector:
|
||
text:
|
||
policy:
|
||
name: Policy
|
||
description: New policy (sticky or spread)
|
||
required: false
|
||
selector:
|
||
select:
|
||
options:
|
||
- sticky
|
||
- spread
|
||
chore_ids:
|
||
name: Chore IDs
|
||
description: Replacement list of chore IDs. For sticky, the first chore is the leader.
|
||
required: false
|
||
selector:
|
||
object:
|
||
|
||
remove_task_group:
|
||
name: Remove Task Group
|
||
description: Delete a task group. The member chores are not affected.
|
||
fields:
|
||
group_id:
|
||
name: Group ID
|
||
description: The ID of the group to delete
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
start_timed_task:
|
||
name: Start Timed Task
|
||
description: Start or resume the timer on a timed task
|
||
fields:
|
||
chore_id:
|
||
name: Chore ID
|
||
description: The ID of the timed chore
|
||
required: true
|
||
selector:
|
||
text:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child starting the timer
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
pause_timed_task:
|
||
name: Pause Timed Task
|
||
description: Pause a running timed task timer
|
||
fields:
|
||
chore_id:
|
||
name: Chore ID
|
||
description: The ID of the timed chore
|
||
required: true
|
||
selector:
|
||
text:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child pausing the timer
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
stop_timed_task:
|
||
name: Stop Timed Task
|
||
description: Stop a timed task timer and submit for approval
|
||
fields:
|
||
chore_id:
|
||
name: Chore ID
|
||
description: The ID of the timed chore
|
||
required: true
|
||
selector:
|
||
text:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child stopping the timer
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
add_badge:
|
||
name: Add Badge
|
||
description: Create a custom badge.
|
||
fields:
|
||
name:
|
||
name: Name
|
||
required: true
|
||
example: "Holiday Helper"
|
||
selector:
|
||
text:
|
||
description:
|
||
name: Description
|
||
example: "Earned for big effort during school holidays"
|
||
selector:
|
||
text:
|
||
icon:
|
||
name: Icon
|
||
example: "mdi:beach"
|
||
selector:
|
||
icon:
|
||
tier:
|
||
name: Tier
|
||
default: bronze
|
||
selector:
|
||
select:
|
||
options:
|
||
- bronze
|
||
- silver
|
||
- gold
|
||
- platinum
|
||
point_bonus:
|
||
name: Point bonus
|
||
default: 0
|
||
selector:
|
||
number:
|
||
min: 0
|
||
max: 1000
|
||
step: 1
|
||
mode: box
|
||
criteria:
|
||
name: Criteria
|
||
description: "List of metric / operator / value dicts (operator one of >=, ==, <=, >, <, !=). Empty = manual-award only."
|
||
selector:
|
||
object:
|
||
combinator:
|
||
name: Combinator
|
||
description: "How multiple criteria combine: AND (all must pass) or OR (any). Default AND."
|
||
default: AND
|
||
selector:
|
||
select:
|
||
options:
|
||
- AND
|
||
- OR
|
||
assigned_to:
|
||
name: Assigned to
|
||
description: "List of child IDs (empty = all)"
|
||
selector:
|
||
object:
|
||
notify_on_earn:
|
||
name: Notify on earn
|
||
default: true
|
||
selector:
|
||
boolean:
|
||
|
||
update_badge:
|
||
name: Update Badge
|
||
description: Update an existing badge. For built-ins, only point_bonus, tier, assigned_to, enabled, notify_on_earn are editable.
|
||
fields:
|
||
badge_id:
|
||
name: Badge ID
|
||
required: true
|
||
selector:
|
||
text:
|
||
name:
|
||
selector:
|
||
text:
|
||
description:
|
||
selector:
|
||
text:
|
||
icon:
|
||
selector:
|
||
icon:
|
||
tier:
|
||
selector:
|
||
select:
|
||
options:
|
||
- bronze
|
||
- silver
|
||
- gold
|
||
- platinum
|
||
point_bonus:
|
||
selector:
|
||
number:
|
||
min: 0
|
||
max: 1000
|
||
step: 1
|
||
mode: box
|
||
criteria:
|
||
selector:
|
||
object:
|
||
combinator:
|
||
selector:
|
||
select:
|
||
options:
|
||
- AND
|
||
- OR
|
||
assigned_to:
|
||
selector:
|
||
object:
|
||
enabled:
|
||
selector:
|
||
boolean:
|
||
notify_on_earn:
|
||
selector:
|
||
boolean:
|
||
|
||
remove_badge:
|
||
name: Remove Badge
|
||
description: Remove a custom badge. Built-ins cannot be removed.
|
||
fields:
|
||
badge_id:
|
||
name: Badge ID
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
award_badge_manually:
|
||
name: Award Badge Manually
|
||
description: Manually award a badge to a child.
|
||
fields:
|
||
badge_id:
|
||
name: Badge ID
|
||
required: true
|
||
selector:
|
||
text:
|
||
child_id:
|
||
name: Child ID
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
revoke_badge:
|
||
name: Revoke Badge
|
||
description: Revoke an awarded badge. If a point bonus was credited, it is reversed.
|
||
fields:
|
||
awarded_badge_id:
|
||
name: Awarded Badge ID
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
rebuild_badges:
|
||
name: Rebuild Badges
|
||
description: Re-evaluate all badges across all children silently (no notifications, no point bonuses).
|