# Feature: Add Database
As a Reseller's Customer
I want to add a database
To store data for a specific application
### Rules:
- The reseller's customer can create databases
- The user and account name must be presented when creating the database
- The database is added asynchronously
- **Prerequisite**: You must have an account and an added site
- Required fields: "Account," "Site," "Database Name," and "Password"
- The first database instance takes up the most storage space in the package (about 200MB)
- A 0.5 GB storage package can hold 10 databases
- Database names in use cannot be duplicated
- Database name cannot contain the words "test" or "teste"
- There is no predefined time for the status to change from "activating" to "active"
- To view the status update, you must manually reload the page
- It should be possible to use a previously deleted database name
- It is not possible to select a site using a package that has reached its database limit
- It is allowed to use reserved words as database names, such as 'column', 'create', 'create_index', 'dbselect', 'io_after_gtids', 'json_table', 'old_table', 'select', 'updates', 'virtual'.
### Scenario: With all valid data
- **Given** that I provide all valid data
- **When** adding a database
- **Then** it shows the message "Banco de dados adicionado com sucesso."
- And it shows the database in the listing
### Scenario: Providing a name in use
- **Given** that I provide a name in use "reservabancoqa"
- **When** adding a database
- **Then** it shows the message "Erro ao adicionar o banco de dados!"
- And it shows a warning "O nome do banco de dados já está em uso"
- And it does not allow adding the database
### Scenario Outline: Providing an invalid name
- **Given** that I provide the invalid name "<name>"
- **Then** it shows a warning "<warning>"
- And it does not allow adding the database
#### Examples:
| name | warning |
| \n | O preenchimento é obrigatório. |
| a_ | O campo deve conter no mínimo 3 caracteres. |
| 0ab_ | O prefixo deve iniciar com letras |
| a0b | O prefixo do banco deve finalizar com: "_" |
| a.b_ | O prefixo deve conter apenas letras, números ou carácter "_" |
### Scenario Outline: Providing an invalid password
- **Given** that I provide the invalid password "<password>"
- **Then** it shows a warning "<warning>"
- And it does not allow adding the database
#### Examples:
| password | warning |
| \n | O preenchimento é obrigatório. |
| inicial | A senha não atinge os requisitos mínimos de segurança. |
| @@@Inicial1234 | A senha deve iniciar com uma letra. |
### Scenario: Site linked to a deactivated plan
- **Given** that the site's plan is deactivated
- **When** adding a database
- **Then** it is not possible to select the site
### Scenario: Package limit reached
- **Given** that the site package has no available quantity
- **When** creating the database and selecting the site
- **Then** it does not allow site selection
- And it shows a warning "Limite atingido"