Una dirección guardada de un Client. Son privadas: solo las ve el propio cliente y los administradores de la Company.
type)delivery — dirección estructurada para reparto local (líneas + ciudad + estado).shipping — dirección postal completa para encomiendas (agrega código postal y país).legacy — dirección antigua de texto libre; solo usa address_line_1. Las direcciones
nuevas se crean como delivery o shipping.address — dirección lista para mostrar, compuesta según el type:
legacy → address_line_1;
delivery → líneas + city + state;
shipping → líneas + city + postal_code + state + country.address_legacy — address + ". " + reference.is_selected — true si es la dirección activa del cliente (client.settings.selected_address_id).
Se cambia con el endpoint set-selected.geofence_check — resultado de Company::check(latitude_e6, longitude_e6): si la dirección
cae dentro del área de cobertura de la Company (is_valid). null solo si no se hizo la comprobación.| Atributo | Tipo | Descripción |
|---|---|---|
id |
int |
|
name |
string |
Etiqueta de la dirección (ej. "Casa", "Oficina") |
address_line_1 |
string\|null |
Calle / línea principal (única línea usada en legacy) |
reference |
string\|null |
Punto de referencia / indicaciones para llegar |
latitude_e6 |
int\|null |
Latitud (× 1e6) |
longitude_e6 |
int\|null |
Longitud (× 1e6) |
created_at |
datetime\|null |
|
updated_at |
datetime\|null |
|
client_id |
int |
Cliente dueño de la dirección |
address_line_2 |
string\|null |
Segunda línea (piso, apto, etc.) |
address_line_3 |
string\|null |
Tercera línea |
country |
string\|null |
País (shipping) |
postal_code |
string\|null |
Código postal (shipping) |
state |
string\|null |
Estado / provincia |
city |
string\|null |
Ciudad |
type |
string\|null |
delivery | shipping | legacy (ver arriba) |
company_id |
bigint |
- |
city_id |
bigint |
- |
address |
string |
Dirección compuesta para mostrar (según type) |
address_legacy |
string |
address + ". " + reference |
allLogs |
ApiLog> |
|
client |
Client |
|
geofence_check |
array\|null |
Cobertura de la Company para esta ubicación (Company::check); null si no se comprobó |
google_maps_url |
string\|null |
|
is_selected |
bool |
Si es la dirección activa del cliente |
logs |
ApiLog> |
{
"id": 1,
"name": "home",
"address_line_1": "assssdaa",
"reference": "sssda adsaasdaas",
"latitude_e6": 10451257,
"longitude_e6": -64138431,
"created_at": "2020-04-28 18:39:57",
"updated_at": "2020-04-28 18:39:57",
"client_id": 42,
"address_line_2": null,
"address_line_3": null,
"country": null,
"postal_code": null,
"state": null,
"city": null,
"type": "legacy",
"company_id": 116,
"city_id": 30,
"address": "assssdaa",
"geofence_check": {
"coordinates_e6": [
-64138431,
10451257
],
"distance_in_meters": null,
"is_valid": false,
"geofence": null
},
"is_selected": false
}
Crear dirección
Crea una ClientAddress para el cliente. type por defecto es legacy (usa el
campo address como address_line_1); para direcciones estructuradas enviar
type: delivery o type: shipping con las líneas y la ubicación.
| Método | URI | Cabeceras |
|---|---|---|
| POST | /companies/{companyId}/clients/{clientId}/client-addresses |
Authorization |
{
"name": "required|string|max:32",
"latitude_e6": "required_if:type,delivery|integer|between:-90000000,90000000",
"longitude_e6": "required_if:type,delivery|integer|between:-180000000,180000000",
"country": "required_with:type|string|max:80",
"postal_code": "required_if:type,shipping|string|max:16",
"state": "required_if:type,shipping|string|max:80",
"city": "required_if:type,shipping|string|max:80",
"address": "required_without:type|string|max:255",
"address_line_1": "required_with:type|string|max:255",
"address_line_2": "required_if:type,shipping|string|max:255",
"address_line_3": "required_if:type,shipping|string|max:255",
"reference": "string|max:255",
"type": "string|in:delivery,shipping"
}
{info} Soporta: Paginación Filters Carga dinámica
Listar direcciones de un cliente
Lista las ClientAddress del cliente. Un cliente solo puede listar las propias.
| Método | URI | Cabeceras |
|---|---|---|
| GET | /companies/{companyId}/clients/{clientId}/client-addresses |
Authorization |
{info} Soporta: Carga dinámica
Mostrar dirección
Devuelve una ClientAddress. Solo la ve el cliente dueño o un administrador.
| Método | URI | Cabeceras |
|---|---|---|
| GET | /companies/{companyId}/client-addresses/{clientAddressId} |
Authorization |
Actualizar dirección
Actualiza una ClientAddress. Igual que en la creación, address (texto plano) se
guarda en address_line_1.
| Método | URI | Cabeceras |
|---|---|---|
| PATCH | /companies/{companyId}/client-addresses/{clientAddressId} |
Authorization |
{
"name": "string|max:32",
"latitude_e6": "integer|between:-90000000,90000000",
"longitude_e6": "integer|between:-180000000,180000000",
"country": "string|max:80",
"postal_code": "string|max:16",
"state": "string|max:80",
"city": "string|max:80",
"address": "string|max:255",
"address_line_1": "required_with:type|string|max:255",
"address_line_2": "string|max:255",
"address_line_3": "string|max:255",
"reference": "string|max:255",
"type": "string|in:delivery,shipping"
}
Eliminar dirección
Elimina una ClientAddress del cliente.
| Método | URI | Cabeceras |
|---|---|---|
| DELETE | /companies/{companyId}/client-addresses/{clientAddressId} |
Authorization |
{info} Soporta: Paginación Filters Carga dinámica
Devuelve las ClientAddress de la company que caen fuera del área de cobertura
(geocercas activas), o todas con ?all=1. Cada elemento trae title, lat, lon, body
e id, para pintarlo sobre un mapa junto con las geocercas y detectar zonas sin cobertura
con muchos clientes.
| Método | URI | Cabeceras |
|---|---|---|
| GET | /companies/{companyId}/client-addresses |
Authorization |
Fija esta ClientAddress como la dirección activa del cliente
(settings.selected_address_id), que se usará por defecto en los próximos pedidos.
| Método | URI | Cabeceras |
|---|---|---|
| POST | /companies/{companyId}/client-addresses/{clientAddressId}/set-selected |
Authorization |