Files
juwan-backend/desc/api/dispute.api
zetaloop dd3cd24b70 Merge branch 'main-merge-base-a'
# Conflicts:
#	deploy/dev/docker-compose.yml
#	deploy/dev/envoy.yaml
#	desc/api/dispute.api
#	desc/api/review.api
#	desc/api/search.api
2026-04-25 05:42:42 +08:00

77 lines
2.0 KiB
Plaintext

syntax = "v1"
import "common.api"
type (
DisputePathId {
Id int64 `path:"id"`
}
Dispute {
Id int64 `json:"id"`
OrderId int64 `json:"orderId"`
InitiatorId int64 `json:"initiatorId"`
InitiatorName string `json:"initiatorName"`
RespondentId int64 `json:"respondentId"`
Reason string `json:"reason"`
Evidence []string `json:"evidence"`
Status string `json:"status"`
Result string `json:"result,optional"`
RespondentReason string `json:"respondentReason,optional"`
RespondentEvidence []string `json:"respondentEvidence"`
AppealReason string `json:"appealReason,optional"`
AppealedAt string `json:"appealedAt,optional"`
ResolvedBy int64 `json:"resolvedBy,optional"`
ResolvedAt string `json:"resolvedAt,optional"`
CreatedAt string `json:"createdAt"`
UpdatedAt string `json:"updatedAt"`
}
DisputeListReq {
PageReq
Status string `form:"status,optional"`
}
DisputeListResp {
Items []Dispute `json:"items"`
Meta PageMeta `json:"meta"`
}
CreateDisputeReq {
DisputePathId
Reason string `json:"reason"`
Evidence []string `json:"evidence"`
}
DisputeResponseReq {
DisputePathId
Reason string `json:"reason"`
Evidence []string `json:"evidence"`
}
AppealReq {
DisputePathId
Reason string `json:"reason"`
}
)
@server (
prefix: api/v1
group: dispute
)
service dispute-api {
@doc "获取争议列表"
@handler ListDisputes
get /disputes (DisputeListReq) returns (DisputeListResp)
@doc "获取订单争议"
@handler GetOrderDispute
get /orders/:id/dispute (DisputePathId) returns (Dispute)
@doc "发起争议"
@handler CreateDispute
post /orders/:id/dispute (CreateDisputeReq) returns (EmptyResp)
@doc "回应争议"
@handler RespondDispute
post /disputes/:id/response (DisputeResponseReq) returns (EmptyResp)
@doc "申诉"
@handler AppealDispute
post /disputes/:id/appeal (AppealReq) returns (EmptyResp)
}