# Domain Command

Work with the domain part of a Rapid project.

```
rapid domain <subcommand>
```

TODO

## Subcommands

- `rapid domain add`: Add subdomains to the domain part of a Rapid project.
  - `rapid domain add sub_domain`: Add subdomains of the domain part of a Rapid project.
- `rapid domain <subdomain>`: Work with the subdomain &lt;subdomain&gt;.
  - `rapid domain <subdomain> add`: Add a component to the subdomain &lt;subdomain&gt;.
    - `rapid domain <subdomain> add entity`: Add a entity to the subdomain &lt;subdomain&gt;.
    - `rapid domain <subdomain> add service_interface`: Add a service interface to the subdomain &lt;subdomain&gt;.
    - `rapid domain <subdomain> add value_object`: Add a value object to the subdomain &lt;subdomain&gt;.
  - `rapid domain <subdomain> remove`: Remove a component from the subdomain &lt;subdomain&gt;.
    - `rapid domain <subdomain> remove entity`: Remove a entity from the subdomain &lt;subdomain&gt;.
    - `rapid domain <subdomain> remove service_interface`: Remove a service interface from the subdomain &lt;subdomain&gt;.
    - `rapid domain <subdomain> remove value_object`: Remove a value object from the subdomain &lt;subdomain&gt;.
- `rapid domain remove`: Remove subdomains from the domain part of a Rapid project.
  - `rapid domain remove sub_domain`: Remove subdomains from the domain part of a Rapid project.

## rapid domain add sub_domain

```
rapid domain add sub_domain <name>
```

## rapid domain &lt;subdomain&gt; add entity

```
rapid domain <subdomain> add entity <name> [arguments]
```

### Parameters

#### `--output-dir (-o)`

- Description: The output directory relative to `<domain_package>/lib/` .
- Type: String
- Default: `"."`

## rapid domain &lt;subdomain&gt; add service_interface

```
rapid domain <subdomain> add service_interface <name> [arguments]
```

### Parameters

#### `--output-dir (-o)`

- Description: The output directory relative to `<domain_package>/lib/` .
- Type: String
- Default: `"."`

## rapid domain &lt;subdomain&gt; add value_object

```
rapid domain <subdomain> add value_object <name> [arguments]
```

### Parameters

#### `--output-dir (-o)`

- Description: The output directory relative to `<domain_package>/lib/` .
- Type: String
- Default: `"."`

#### `--type`

- Description: The type that gets wrapped by this value object. Generics get escaped via `"#"` e.g `Tuple<#A, #B, String>`.
- Type: String
- Default: `"String"`

## rapid domain &lt;subdomain&gt; remove entity

```
rapid domain <subdomain> remove entity <name> [arguments]
```

### Parameters

#### `--dir (-d)`

- Description: The directory relative to `<domain_package>/lib/` .
- Type: String
- Default: `"."`

## rapid domain &lt;subdomain&gt; remove service_interface

```
rapid domain <subdomain> remove service_interface <name> [arguments]
```

### Parameters

#### `--dir (-d)`

- Description: The directory relative to `<domain_package>/lib/` .
- Type: String
- Default: `"."`

## rapid domain &lt;subdomain&gt; remove value_object

```
rapid domain <subdomain> remove value_object <name> [arguments]
```

### Parameters

#### `--dir (-d)`

- Description: The directory relative to `<domain_package>/lib/` .
- Type: String
- Default: `"."`
