Testing procedures for profile.
- Allow users to enable "advanced" mode.
- This will increase the prompt limit to 1000 characters for fields. This will allow users to input commands, and multi-fields.
- This will allow users to input text for their archive and verification channels; up to 1000 characters. This will allow users to input commands.
- Users can create a template (/template create).
- The bot will check that the given name is not already in use.
- The bot will check that the maximum number of templates has not been exceeded.
- Users can edit a template (/template edit).
- Users can delete a template (/template delete).
- The template will be marked as deleted.
- All associated profiles will be marked as deleted.
- Users can see the list of templates (/template list).
- The name on a template can be changed.
- The archive channel can be changed.
- The archive channel can be removed.
- The verification channel can be changed.
- The verification channel can be removed.
- The given role can be changed.
- The given role can be removed.
- A slash command can be added/updated.
- If the max number of profiles is 0 when this is run, the slash command is deleted.
- A context menu command can be added/updated/removed.
- A maximum number of profiles can be set.
- A field can be added.
- A field can be renamed.
- The name can be in use multiple times.
- A field prompt can be set.
- A field type can be set.
- Only one image field is allowed.
- A field can be made optional/required.
- A field can be deleted.
- Users can create a profile (/profile create).
- The bot will check that the given name is not already in use.
- The bot will check that the maximum number of profiles has not been exceeded.
- Users can edit a profile (/profile edit).
- Users can delete a profile (/profile delete).
- Users can see profiles (/profile get).
- The bot can only see profiles that they made,
- or profiles that have been verified already.
- There should be an error message if the user pinged has no profiles.
- The message will be ephemeral by default, but a button will be present for verified profiles to repost the profile publicly.
- Multi-fields; https://canary.discord.com/channels/208895639164026880/1052974864513896478/1052994405184847943
- A profile needs to be a draft to be edited.
- If a profile is not a draft, the user is asked to convert it to one.
- When a profile is converted to a draft, the sent messages (either to the verification or archive channel) are deleted.
- The name on a profile can be changed.
- The bot will check that the given name is not already in use.
- A profile can be submitted.
- The bot will check that the maximum number of profiles has not been exceeded.
- All fields added to the template can be set.
- The fields must have valid values as per their type.
- Optional fields do not need to be filled, and can be cleared.
- Fields with a command set should not be filled.
- If a multi-field is created, each line of the prompt should be added to a modal.
- If a template has a verification channel, a profile must be verified before it is sent to the archive channel.
- If there is no verification channel but there is an archive channel, the
profile is sent to the archive channel without being checked.
- The associated role (if present) is added to the user.
- If there are neither, the profile is just marked as both submitted
and verified.
- The associated role (if present) is added to the user.
- When a profile is sent to the verification channel, an "approve" and "deny" button are both added to the associated profile.
- If the approve button is pressed,
- the message is deleted,
- the profile is sent to the archive channel (if one is set),
- and the user is sent a DM saying their profile was verified.
- The profile is marked as verified.
- The associated role (if present) is added to the user.
- The moderator, profile JSON dump, and time are logged into the database.
- If the deny button is pressed,
- the moderator is asked for a reason.
- After a reason is given, the message is deleted,
- and the user is sent a DM saying their profile was denied,
- along with the reason.
- The profile is converted back to a draft.
- The moderator, profile JSON dump, time, and reason are logged into the database.