New endpoints: - Admin: partner CRUD (GET/POST /admin/partners, GET/PUT/DELETE /admin/partners/:id), bulk express booking create (POST /admin/expressbooking/bulk), bulk cancel (POST /admin/bookings/bulk-cancel), reports (GET /admin/reports), password change (PUT /admin/profile/password), miler notify (POST /admin/milers/:id/notify) - Miler: PIN reset (POST /miler/reset-pin), cancel assignment (POST /miler/bookings/:bookingid/cancel), skip delivery (POST /miler/consignments/:id/skip) - Hub: batch assign (POST /hub/bookings/batch-assign) - greedy nearest-rider queue clearing, capped per rider Bug fixes: - BookingPickupComplete now sets Consignment.Tenantid from the booking's tenant instead of the completing miler's own tenant (fixes cross-tenant shipment mis-attribution) - GetHubUnassignedBookings/GetHubBookingsRange now scoped via scopeBookingsToOwnTenant (fixes partner hub staff seeing other tenants' bookings) Also: CRM booking routes renamed to expressbooking to end the naming collision with the separate CRM clients feature; PickupBooking gains nullable Tenantid; adds CLAUDE.md project memory. Verified: go build ./... and go vet ./... both clean. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
67 lines
2.0 KiB
Go
67 lines
2.0 KiB
Go
package dto
|
|
|
|
type CustomerRegisterRequest struct {
|
|
Firstname string `json:"firstname" xml:"firstname" form:"firstname"`
|
|
Lastname string `json:"lastname" xml:"lastname" form:"lastname"`
|
|
Phone string `json:"phone" xml:"phone" form:"phone"`
|
|
Email string `json:"email" xml:"email" form:"email"`
|
|
Pin string `json:"pin" xml:"pin" form:"pin"` // 4 or 6 digit PIN
|
|
Configid int `json:"configid"`
|
|
}
|
|
|
|
type CustomerLoginRequest struct {
|
|
Phone string `json:"phone" xml:"phone" form:"phone"`
|
|
Configid int `json:"configid"`
|
|
}
|
|
|
|
type CustomerPinVerifyRequest struct {
|
|
Phone string `json:"phone" xml:"phone" form:"phone"`
|
|
Pin string `json:"pin" xml:"pin" form:"pin"`
|
|
Configid int `json:"configid"`
|
|
DeviceToken string `json:"device_token"`
|
|
}
|
|
|
|
type CustomerResetPinRequest struct {
|
|
Phone string `json:"phone" xml:"phone" form:"phone"`
|
|
NewPin string `json:"new_pin" xml:"new_pin" form:"new_pin"`
|
|
Configid int `json:"configid"`
|
|
}
|
|
|
|
type SendEmailOtpRequest struct {
|
|
Email string `json:"email" xml:"email" form:"email"`
|
|
Phone string `json:"phone" xml:"phone" form:"phone"`
|
|
}
|
|
|
|
type VerifyEmailOtpRequest struct {
|
|
Email string `json:"email" xml:"email" form:"email"`
|
|
Otp string `json:"otp" xml:"otp" form:"otp"`
|
|
}
|
|
|
|
type MilerLoginRequest struct {
|
|
Phone string `json:"phone" xml:"phone" form:"phone"`
|
|
Configid int `json:"configid"`
|
|
}
|
|
|
|
type MilerPinVerifyRequest struct {
|
|
Phone string `json:"phone" xml:"phone" form:"phone"`
|
|
Pin string `json:"pin" xml:"pin" form:"pin"`
|
|
Configid int `json:"configid"`
|
|
DeviceToken string `json:"device_token"`
|
|
}
|
|
|
|
type MilerResetPinRequest struct {
|
|
Phone string `json:"phone" xml:"phone" form:"phone"`
|
|
NewPin string `json:"new_pin" xml:"new_pin" form:"new_pin"`
|
|
Configid int `json:"configid"`
|
|
}
|
|
|
|
type AdminLoginRequest struct {
|
|
Email string `json:"email" xml:"email" form:"email"`
|
|
Password string `json:"password" xml:"password" form:"password"`
|
|
}
|
|
|
|
type LoginResponse struct {
|
|
Token string `json:"token"`
|
|
User interface{} `json:"user"`
|
|
}
|