package contract // Requests of /customer/pin and /marketing/customers/:id/pin (docs/prd-point-coin.md // F11). PINs are strings so a leading zero is kept. type RequestPinOtpRequest struct { // pin_setup or pin_reset. Purpose string `json:"purpose" binding:"required"` } type CreateCustomerPinRequest struct { OtpToken string `json:"otp_token" binding:"required"` OtpCode string `json:"otp_code" binding:"required"` Pin string `json:"pin" binding:"required"` ConfirmPin string `json:"confirm_pin" binding:"required"` } type ChangeCustomerPinRequest struct { OldPin string `json:"old_pin" binding:"required"` Pin string `json:"pin" binding:"required"` ConfirmPin string `json:"confirm_pin" binding:"required"` } type ResetCustomerPinRequest = CreateCustomerPinRequest type RemoveCustomerPinRequest struct { Reason string `json:"reason" binding:"required"` } // IssuePaymentCodeRequest is POST /customer/wallet/payment-code. type IssuePaymentCodeRequest struct { Pin string `json:"pin" binding:"required"` } // PayWithPointsRequest is POST /customer/orders/:id/pay-with-points. type PayWithPointsRequest struct { Points int64 `json:"points" binding:"required,min=1"` Pin string `json:"pin" binding:"required"` }