# Suggestions

In your `suggestions.yml`, navigate to the **`SuggestionSettings`** section.

Key settings:

* **`UseQuestionModal`**\
  Must be set to `true` to enable modal-based suggestions.
* **`AdditionalModalInputs`**\
  Defines up to **4 extra fields** in your suggestion modal.\
  These fields can be either:
  * `TextInput` → Free text fields
  * `StringSelect` → Dropdown menus with predefined options

***

### 🔧 AdditionalModalInputs Structure

Each input requires the following properties depending on its type:

#### 1. Text Inputs

```yaml
    1: # Additional details text input
      Type: "TextInput"
      ID: "details" # {modal_details}
      Question: "Additional Details (Optional)"
      Placeholder: "Any extra context, examples, or details about your suggestion..."
      Style: "Paragraph" # Short + Paragraph
      Required: false
      maxLength: 2000
```

#### 2. StringSelect Dropdowns

{% code expandable="true" %}

```yaml
    2: # Product selection dropdown
      Type: "StringSelect"
      ID: "product" # Available as: {modal_product}, {modal_product_formatted}, {modal_product_label}, {modal_product_emoji}
      Label: "Product Selection"
      Description: "Which product is this suggestion for?"
      Placeholder: "Choose a product..."
      Required: true
      Options:
        - Label: "Drako Bot"
          Value: "drako_bot"
          Description: "Multi-purpose Discord bot"
          Emoji: "🤖"
        - Label: "Drako Tickets"
          Value: "drako_tickets"
          Description: "Advanced ticket management system"
          Emoji: "🎫"
        - Label: "Discord Platform"
          Value: "discord"
          Description: "General Discord platform suggestions"
          Emoji: "💬"
        - Label: "Other"
          Value: "other"
          Description: "Other products or services"
          Emoji: "📦"
```

{% endcode %}

***

### 📝 Example Configuration

Here’s a complete example with a mix of inputs:

{% code expandable="true" %}

```yaml
SuggestionSettings:
  UseQuestionModal: true
  AdditionalModalInputs:
    1: # Product field
      Type: "TextInput"
      ID: "product"
      Question: "Which product is this suggestion for?"
      Placeholder: "Drako Bot, Drako Tickets, Discord"
      Style: "Short"
      Required: true

    2: # Priority dropdown
      Type: "StringSelect"
      ID: "priority"
      Label: "Suggestion Priority"
      Placeholder: "Choose a priority..."
      Required: true
      Options:
        - Label: "🟢 Low Priority"
          Value: "low"
        - Label: "🟡 Medium Priority"
          Value: "medium"
        - Label: "🔴 High Priority"
          Value: "high"

    3: # Category dropdown
      Type: "StringSelect"
      ID: "category"
      Label: "Suggestion Category"
      Required: false
      Options:
        - Label: "🐛 Bug Fix"
          Value: "bug"
        - Label: "✨ New Feature"
          Value: "feature"
        - Label: "⚡ Improvement"
          Value: "improvement"
```

{% endcode %}

***

### 🏷️ Using Placeholders in Embeds

Once configured, these inputs can be displayed inside your `SuggestionEmbed` using placeholders:

| Placeholder              | Example Output    |
| ------------------------ | ----------------- |
| `{modal_[ID]}`           | `low`             |
| `{modal_[ID]_formatted}` | `🟢 Low Priority` |
| `{modal_[ID]_label}`     | `Low Priority`    |
| `{modal_[ID]_emoji}`     | `🟢`              |

#### Example Embed

{% code expandable="true" %}

````yaml
SuggestionEmbed:
  EmbedColor: "#1769FF"
  EmbedTitle: "{user}'s Suggestion"
  EmbedDescription:
    - "**Suggestion**"
    - "```{suggestion}```"
    - ""
    - "**📋 Details**"
    - "> **Product:** {modal_product}"
    - "> **Priority:** {modal_priority_formatted}"
    - "> **Category:** {modal_category_formatted}"
  EmbedFooter: "Suggestion ID: {SuggestionID} | {LongTime}"
  Thumbnail: true
  AuthorIcon: true
````

{% endcode %}

***

### ⚙️ Important Notes

* Maximum **4 inputs** per modal (Discord limitation)
* Maximum **25 options** per dropdown
* Labels and values must each be **≤ 100 characters**
