# `ExVrp.Depot`
[🔗](https://github.com/sephianl/ex_vrp/blob/v0.4.2/lib/ex_vrp/depot.ex#L1)

Represents a depot (distribution center) in a VRP.

Depots are locations where vehicles start and/or end their routes.

# `t`

```elixir
@type t() :: %ExVrp.Depot{
  name: String.t(),
  reload_cost: non_neg_integer(),
  service_duration: non_neg_integer(),
  tw_early: non_neg_integer(),
  tw_late: non_neg_integer(),
  x: number(),
  y: number()
}
```

# `new`

```elixir
@spec new(keyword()) :: t()
```

Creates a new depot.

## Required Options

- `:x` - X coordinate
- `:y` - Y coordinate

## Optional Options

- `:tw_early` - Earliest departure time (default: `0`)
- `:tw_late` - Latest return time (default: `:infinity`)
- `:service_duration` - Time required for loading/unloading at this depot during reloads (default: `0`)
- `:reload_cost` - Cost incurred when a vehicle reloads at this depot (default: `0`)
- `:name` - Depot name for identification (default: `""`)

## Examples

    iex> ExVrp.Depot.new(x: 0, y: 0)
    %ExVrp.Depot{x: 0, y: 0, ...}

---

*Consult [api-reference.md](api-reference.md) for complete listing*
