Refactor Zone interface to use separate shipping schedule fields

Replace single deliverySchedule field with shippingScheduleStart and shippingScheduleEnd for more granular control over delivery time windows. Update both Leaflet and Libre adapters to display the new fields.

Co-Authored-By: David Nguyen <david.nguyen@goutezplanb.com>

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
David Nguyen 2025-10-28 17:13:13 -04:00
parent 46e6f7f44a
commit ef665f7bf1
Signed by: david.nguyen
GPG Key ID: D5FB5A5715829326
4 changed files with 15532 additions and 3 deletions

15526
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -116,7 +116,8 @@ export class LeafletAdapter implements IMapAdapter<Marker> {
<div > <div >
${zone.name ? `<p><strong>${zone.name}</strong></p>` : ''} ${zone.name ? `<p><strong>${zone.name}</strong></p>` : ''}
${zone.shippingFee ? `<p>Shipping: ${zone.shippingFee}</p>` : ''} ${zone.shippingFee ? `<p>Shipping: ${zone.shippingFee}</p>` : ''}
${zone.deliverySchedule ? `<p>Delivery: ${zone.deliverySchedule}</p>` : ''} ${zone.shippingScheduleStart ? `<p>Delivery: ${zone.shippingScheduleStart}</p>` : ''}
${zone.shippingScheduleEnd? `<p>Delivery: ${zone.shippingScheduleEnd}</p>` : ''}
</div>`) </div>`)
.openOn(this.map); .openOn(this.map);
} }

View File

@ -154,7 +154,8 @@ export class LibreAdapter implements IMapAdapter<Marker> {
<div class="delivery-zone"> <div class="delivery-zone">
${zone.name ? `<p><strong>${zone.name}</strong></p>` : ''} ${zone.name ? `<p><strong>${zone.name}</strong></p>` : ''}
${zone.shippingFee ? `<p>Shipping: ${zone.shippingFee}$</p>` : ''} ${zone.shippingFee ? `<p>Shipping: ${zone.shippingFee}$</p>` : ''}
${zone.deliverySchedule ? `<p>Delivery: ${zone.deliverySchedule}</p>` : ''} ${zone.shippingScheduleStart ? `<p>Delivery: ${zone.shippingScheduleStart}</p>` : ''}
${zone.shippingScheduleEnd? `<p>Delivery: ${zone.shippingScheduleEnd}</p>` : ''}
</div>`) </div>`)
.addTo(this.map); .addTo(this.map);
} }

View File

@ -15,7 +15,8 @@ export interface Zone {
opacity?: number; opacity?: number;
polygon: GeoPoint[]; polygon: GeoPoint[];
shippingFee?: number; shippingFee?: number;
deliverySchedule?: string; shippingScheduleStart?: string;
shippingScheduleEnd?: string;
} }
export type LatLng = [number, number]; export type LatLng = [number, number];