New apps Added
This commit is contained in:
@@ -0,0 +1,983 @@
|
||||
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:
|
||||
|
||||
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).
|
||||
Reference in New Issue
Block a user