# Confectionery Skills Hub

A set of skills (*tool definitions*) for recipe management and order processing in a sweet shop / confectionery.

---

## 1. Skill: `create_recipe`

Registers a new dessert recipe in the sweet shop's catalog.

### When to use
* The user wants to register a new recipe, cake, candy, or preparation.
* The user provides a list of ingredients and yield weight for registration.

### Parameter Schema

| Field | Type | Required | Description |
| :--- | :--- | :--- | :--- |
| `recipe_name` | `string` | Yes | Official name of the recipe (e.g., `"Carrot Cake with Brigadeiro"`). |
| `type` | `string` (enum) | Yes | Category: `"cake"`, `"candy"`, `"ice_cream"`, `"pie"`, `"other"`. |
| `yield_kg` | `number` | Yes | Estimated final yield in kg (e.g., `1.8`). |
| `ingredients` | `string[]` | Yes | List of ingredients with approximate quantities. |
| `description` | `string` | No | Brief preparation method or sensory notes. |

### Sample Input (Tool Call)
```json
{
  "recipe_name": "Ninho Volcano Cake",
  "type": "cake",
  "yield_kg": 2.1,
  "ingredients": [
    "4 eggs",
    "2 cups all-purpose flour",
    "1 cup powdered milk",
    "1 can sweetened condensed milk",
    "200ml heavy cream"
  ],
  "description": "Fluffy cake with generous creamy filling in the center."
}
```

## 2. Skill: `search_recipe`

Searches the catalog to list recipes by name or category.

### When to use
* The user asks whether a specific dessert is on the menu.
* The user wants to see ingredients or view items belonging to a specific category (e.g., "what pies do we have?").

### Parameter Schema

| Field | Type | Required | Description |
| :--- | :--- | :--- | :--- |
| `search_term` | `string` | No | Keyword or partial name of the dessert (e.g., `"brigadeiro"`). |
| `type` | `string` (enum) | No | Category filter: `"cake"`, `"candy"`, `"ice_cream"`, `"pie"`, `"other"`. |

### Sample Input (Tool Call)
```json
{
  "search_term": "carrot",
  "type": "cake"
}
```

## 3. Skill: `create_order`

Registers a new custom order or counter sale in the sweet shop.

### When to use
* The customer or attendant requests to complete an order.
* Items to purchase, customer details, and delivery information are provided.

### Parameter Schema

| Field | Type | Required | Description |
| :--- | :--- | :--- | :--- |
| `customer_name` | `string` | Yes | Full name of the customer. |
| `delivery_address` | `string` | Yes | Shipping address or `"Store Pickup"`. |
| `items` | `object[]` | Yes | List containing the purchased items. |
| `items[].item_name` | `string` | Yes | Name of the product. |
| `items[].quantity` | `integer` | Yes | Quantity of units or portions. |
| `items[].unit_price` | `number` | Yes | Unit price in local currency (BRL). |
| `discount` | `number` | No | Flat discount amount applied in local currency (BRL). Default: `0`. |

### Sample Input (Tool Call)
```json
{
  "customer_name": "Fernanda Lima",
  "delivery_address": "Av. Paulista, 1000 - Apt 42",
  "items": [
    {
      "item_name": "100-Pack of Gourmet Brigadeiros",
      "quantity": 1,
      "unit_price": 120.00
    },
    {
      "item_name": "Whole Dutch Pie",
      "quantity": 1,
      "unit_price": 85.00
    }
  ],
  "discount": 15.00
}
```