# Shift Management

### What is the Shift Management module?

The shift management module is ERMs main module. It houses everything from logging shifts to making shift types.

### Checklist

* [ ] Configuring the Shift Management module.
* [ ] Starting a shift.
* [ ] Creating a Shift Type.
* [ ] Setting a Shift Quota.
* [ ] Setting a role-based quota.
* [ ] Creating role-locked shift types.
* [ ] Voiding a Shift.
* [ ] Clearing a Server's Shifts.
* [ ] Adding/Removing time from a person.

### Configuring the Shift Management module.

* Run `/config` .
  * Click **Basic Settings.**
  * On the dropdown that appears, click **Shift Management**.
  * On the second dropdown, select a channel where all Shift logs will go.
  * On the third dropdown, select a role that will be given to an individual when they go on duty, and removed when they go off duty. *Want to set a role for a specific shift type? Look below.*

- [x] Configuring the Shift Management module.

### Starting a shift.

* Run `/duty manage`.
  * Click **On-Duty**.

{% hint style="info" %}
**HINT:** If shift types are set up, you will need to enter the shift type in the command arguments. If you don't do this, the bot will provide you with a shift type to select on a dropdown.
{% endhint %}

* [x] Starting a shift.

### Creating a Shift Type.

* Run `/config`.
  * Click **Basic Settings.**
  * On the dropdown that appears, click **Shift Management**.
  * Select **Shift Types**.
  * Click **Create**.
  * Enter the name of the shift type. This is what it will be showed as on the shift type menu.
  * On the first dropdown, select the role that you want to be given when someone goes on duty for this shift type. *Optional - if not set, bot falls back to the default role*.
  * On the second dropdown, select an access role for the people who you want to be able to access the shift type. *Optional - if not set, bot allows everyone to use the shift type*.
  * On the third dropdown, select the channel that you want all logging messages of that shift type to be sent to. *Optional - if not set, bot falls back to the default logging channel*.
  * If you want, you can click **Nickname Prefix** and set a custom nickname prefix for that shift type. *Optional - if not set, bot falls back to the default nickname prefix.*

- [x] Creating a Shift Type.

### Setting a Shift Quota.

* Run `/config`.
  * Click **Basic Settings.**
  * On the dropdown that appears, click **Shift Management**.
  * Select **More Options**.
  * Click **Quota** and enter a time.

- [x] Setting a Shift Quota.

### Setting a role-based quota.

* Run `/config`.
  * Click **Basic Settings.**
  * On the dropdown that appears, click **Shift Management**.
  * Select **Role Quotas**.
  * Select **Create**.
  * On the first and only dropdown, select the role that you want the role-specific quota to be set to.
  * Select **Set Quota** and set the time you want the quota to be.

- [x] Setting a role-based quota.

### Creating role-locked shift types.

* Run `/config`.
  * Click **Basic Settings.**
  * On the dropdown that appears, click **Shift Management**.
  * Click on **Shift Types**.
  * Click on **Edit** to modify an existing shift type, or **Create** to create a new one.
  * On the dropdown that says **Access Roles**, enter the role(s) that you want to be able to access the shift types.

- [x] Creating role-locked shift types.

### Voiding a Shift.

* Type `/duty admin` and select the user that you want to void the shift of.
  * *If a shift type menu comes up, click on the shift type that the user is on / the shift type for the shift that you want to void.*
  * Click **Void Shift**.

- [x] Voiding a Shift

### Clearing a Server's Shifts.

* Run `/server manage` .
  * Click **Introduction.**
  * On the dropdown that appears, click **Shift Logging**.
  * Click on **Erase All Shifts.**

{% hint style="info" %}
**HINT:** You can also clear all past shifts, which means that users currently on duty will not be affected and their shifts will stay up. It is also possible to clear all active shifts, which removes all active shifts from your server. Finally, you can also Erase Shifts by Type, which clears shifts by a certain shift type.
{% endhint %}

* [x] Clearing a Server's Shifts.

### Adding/Removing time from a person.

* Type `/duty admin` and select the user that you want to add/remove time.
  * Click on **Other Options**.
  * **Adding Time:**
    * Nested inside of the **Other Options** dropdown, click on **Add Time** and select the amount of time you want to add from the person you ran the `/duty admin` command for.
  * **Removing Time:**
    * Nested inside of the **Other Options** dropdown, click on **Remove Time** and select the amount of time you want to remove from the person you ran the `/duty admin` command for.

- [x] Adding/Removing time from a person.
