fix(t243): allow deleting unreferenced procurement drafts

This commit is contained in:
QiuSW
2026-07-29 16:45:25 +08:00
parent 62eee74a70
commit 24eef29076
12 changed files with 504 additions and 102 deletions
+23 -11
View File
@@ -60,14 +60,19 @@ func invalidError(code, message string, fields map[string]string) *Error {
}
var (
ErrRepositoryNotFound = errors.New("repository resource not found")
ErrIdempotencyConflict = errors.New("idempotency key payload conflict")
ErrSourceReferenceConflict = errors.New("source reference conflict")
ErrAssetUnavailable = errors.New("asset is unavailable")
ErrTaskStateConflict = errors.New("task state conflict")
ErrFreightOrderInUse = errors.New("freight order is in use")
ErrRepositoryUnavailable = errors.New("repository unavailable")
ErrRepositoryInvariant = errors.New("repository invariant failed")
ErrRepositoryNotFound = errors.New("repository resource not found")
ErrIdempotencyConflict = errors.New("idempotency key payload conflict")
ErrSourceReferenceConflict = errors.New("source reference conflict")
ErrAssetUnavailable = errors.New("asset is unavailable")
ErrTaskStateConflict = errors.New("task state conflict")
ErrFreightOrderHasReference = errors.New(
"freight order has a procurement reference",
)
ErrFreightOrderHasPurchaseTask = errors.New(
"freight order has a purchase task",
)
ErrRepositoryUnavailable = errors.New("repository unavailable")
ErrRepositoryInvariant = errors.New("repository invariant failed")
)
func wrapRepositoryError(err error) error {
@@ -107,11 +112,18 @@ func wrapRepositoryError(err error) error {
"task state does not allow this operation",
err,
)
case errors.Is(err, ErrFreightOrderInUse):
case errors.Is(err, ErrFreightOrderHasPurchaseTask):
return newError(
ErrorKindConflict,
"FREIGHT_ORDER_IN_USE",
"freight order is already used by procurement",
"FREIGHT_ORDER_HAS_PURCHASE_TASK",
"freight order already has a purchase task",
err,
)
case errors.Is(err, ErrFreightOrderHasReference):
return newError(
ErrorKindConflict,
"FREIGHT_ORDER_HAS_REFERENCE",
"freight order already has a procurement reference",
err,
)
case errors.Is(err, ErrRepositoryUnavailable):