package inventory

import (
	"github.com/TaruLab/keluargamart-backend/pkg/httpresponse"
	"github.com/TaruLab/keluargamart-backend/pkg/middleware"
	"net/http"
)

func (h *Handler) UpdateTransfer(w http.ResponseWriter, r *http.Request) {
	var in TransferInput
	if !decode(w, r, &in) {
		return
	}
	t, err := h.svc.TransferEdit(r.Context(), pathID(r), in, false)
	if err != nil {
		respondErr(w, r, err)
		return
	}
	httpresponse.OK(w, http.StatusOK, middleware.RequestIDFrom(r.Context()), t)
}
func (h *Handler) CancelTransfer(w http.ResponseWriter, r *http.Request) {
	t, err := h.svc.TransferEdit(r.Context(), pathID(r), TransferInput{}, true)
	if err != nil {
		respondErr(w, r, err)
		return
	}
	httpresponse.OK(w, http.StatusOK, middleware.RequestIDFrom(r.Context()), t)
}
func (h *Handler) ReceiveTransfer(w http.ResponseWriter, r *http.Request) {
	h.receiveTransfer(w, r, false)
}
func (h *Handler) ReconcileTransfer(w http.ResponseWriter, r *http.Request) {
	h.receiveTransfer(w, r, true)
}
func (h *Handler) receiveTransfer(w http.ResponseWriter, r *http.Request, reconcile bool) {
	var in TransferReceiptInput
	if !decode(w, r, &in) {
		return
	}
	t, err := h.svc.TransferReceive(r.Context(), pathID(r), in, reconcile)
	if err != nil {
		respondErr(w, r, err)
		return
	}
	httpresponse.OK(w, http.StatusOK, middleware.RequestIDFrom(r.Context()), t)
}
