Skip to content

feat(forms): per-form accepted role (overrides guild default)#81

Merged
Musiker15 merged 1 commit into
mainfrom
feat/per-form-accepted-role
Jun 21, 2026
Merged

feat(forms): per-form accepted role (overrides guild default)#81
Musiker15 merged 1 commit into
mainfrom
feat/per-form-accepted-role

Conversation

@Musiker15

Copy link
Copy Markdown
Member

The accepted role was only configurable guild-wide (Bot settings). Now each form can set its own accepted role, falling back to the guild default when unset.

Changes

  • sharedformSettingsSchema (acceptedRoleId) + parseFormSettings, stored in the existing Form.settings JSON.
  • webformInputSchema gains settings; the create + update routes persist it; getFormForEdit selects it; the form builder gets an Accepted role ID field (new/edit pages seed it). i18n DE/EN; the guild Bot-settings hint is reworded to "default (each form can override)".
  • bot — on accept, the granted role is form.settings.acceptedRoleId ?? guild botConfig.acceptedRoleId.

No DB migration — Form.settings already existed. typecheck/lint/build green.

The accepted role could only be set guild-wide (Guild.botConfig). Allow each form
to define its own accepted role, falling back to the guild default.

- shared: `formSettingsSchema` (`acceptedRoleId`) + `parseFormSettings`, stored in
  the existing `Form.settings` JSON.
- web: `formInputSchema` gains `settings`; create + update routes persist it;
  `getFormForEdit` selects it; the builder has an "Accepted role ID" field
  (new/edit pages seed it). i18n DE/EN; bot-settings hint reworded as "default".
- bot: on accept, the role is `form.settings.acceptedRoleId ?? guild
  botConfig.acceptedRoleId`.

No migration — Form.settings already exists.
@Musiker15 Musiker15 merged commit ed7018d into main Jun 21, 2026
3 checks passed
@Musiker15 Musiker15 deleted the feat/per-form-accepted-role branch June 21, 2026 19:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant