Alcances (scopes)
delivery_zones:read— listar zonas, obtener una zona y comprobar la cobertura.delivery_zones:write— crear, actualizar y eliminar zonas.
Crear una zona
Los nombres de zona deben ser únicos por local.polygon es un Polygon de GeoJSON con anillos de [longitude, latitude]; el primer anillo debe estar cerrado (el primer y el último punto son iguales).
delivery_fee_cents tiene un valor predeterminado de 0, is_active de true, priority de 0 y zone_type de polygon. La respuesta es el objeto delivery_zone creado; use su id para los endpoints de la zona.
Las comprobaciones de cobertura siempre evalúan polygon. zone_type: 'circle' y radius_miles son solo metadatos descriptivos: para una zona circular, envíe un polígono que aproxime el círculo.
Listar zonas
{ "object": "list", "data": [...] } con únicamente las zonas activas.
Actualizar una zona
PATCH cambia solo los campos que usted envía:
Eliminar una zona
Al eliminar, la zona se desactiva (deja de aparecer en los resultados de la lista y en las comprobaciones de cobertura):Comprobar si una coordenada tiene entrega
Antes de cotizar una entrega, compare las coordenadas del cliente con las zonas del local:delivery_zone_check: in_zone indica si el local entrega allí y, cuando es verdadero, zone contiene la zona correspondiente y delivery_fee_cents su tarifa. Cuando es falso, ambos son null.
get/update/delete de una zona devuelven 404 si la zona pertenece a otro local: un socio solo puede tocar las zonas que pertenecen al local indicado en la ruta.