feat(listing): 编辑已发布账号需先下架, 编号保持不变

Update 增加前置校验, 仅 draft/offline 状态可编辑, published 必须
先主动下架; 编辑后由 initialPublishState 推进到待审核, 审核通过
才重新展示. ListingNo 仅在 Create 时生成, 全程同行更新不变
This commit is contained in:
yml2213
2026-07-03 08:28:26 +08:00
parent 3d0ea40ba3
commit f5a1630a27
3 changed files with 27 additions and 20 deletions
+21 -20
View File
@@ -8,26 +8,27 @@ import (
)
var (
ErrDependencyUnavailable = errors.New("dependency unavailable")
ErrInvalidInput = errors.New("invalid listing input")
ErrListingLocked = errors.New("listing locked")
ErrPublishCooldown = errors.New("listing publish cooldown")
ErrMissingTitle = errors.New("missing listing title")
ErrMissingServerRegion = errors.New("missing server region")
ErrInvalidPrice = errors.New("invalid listing price")
ErrInvalidDeposit = errors.New("invalid listing deposit")
ErrDepositTooLow = errors.New("listing deposit too low")
ErrInvalidHafCoin = errors.New("invalid haf coin amount")
ErrMissingScreenshot = errors.New("missing screenshot")
ErrMissingOnlineTime = errors.New("missing online time")
ErrInvalidOnlineTime = errors.New("invalid online time")
ErrAgreementRequired = errors.New("listing publish agreement required")
ErrTargetOwnerInvalid = errors.New("target owner invalid")
ErrMissingUploaderName = errors.New("missing uploader name")
ErrMissingUploadData = errors.New("missing upload data")
ErrUploaderNotFound = errors.New("uploader not found")
ErrUploaderAmbiguous = errors.New("uploader ambiguous")
ErrTooManyUploadItems = errors.New("too many upload items")
ErrDependencyUnavailable = errors.New("dependency unavailable")
ErrInvalidInput = errors.New("invalid listing input")
ErrListingLocked = errors.New("listing locked")
ErrListingMustOfflineToEdit = errors.New("listing must be offline to edit")
ErrPublishCooldown = errors.New("listing publish cooldown")
ErrMissingTitle = errors.New("missing listing title")
ErrMissingServerRegion = errors.New("missing server region")
ErrInvalidPrice = errors.New("invalid listing price")
ErrInvalidDeposit = errors.New("invalid listing deposit")
ErrDepositTooLow = errors.New("listing deposit too low")
ErrInvalidHafCoin = errors.New("invalid haf coin amount")
ErrMissingScreenshot = errors.New("missing screenshot")
ErrMissingOnlineTime = errors.New("missing online time")
ErrInvalidOnlineTime = errors.New("invalid online time")
ErrAgreementRequired = errors.New("listing publish agreement required")
ErrTargetOwnerInvalid = errors.New("target owner invalid")
ErrMissingUploaderName = errors.New("missing uploader name")
ErrMissingUploadData = errors.New("missing upload data")
ErrUploaderNotFound = errors.New("uploader not found")
ErrUploaderAmbiguous = errors.New("uploader ambiguous")
ErrTooManyUploadItems = errors.New("too many upload items")
)
type Service struct {