Files
goauto/server/app/goauto/access/purchaser.go
T

133 lines
8.9 KiB
Go

package access
// RolePurchaser is the fixed role key used by the GoAuto purchaser account.
const RolePurchaser = "purchaser"
// APIPermission describes one admin API known to GoAuto. Purchaser marks the
// APIs that the purchaser role may call; every other API remains admin-only.
type APIPermission struct {
Title string
Path string
Method string
Purchaser bool
}
// AdminAPIs is the auditable permission matrix for GoAuto's authenticated
// admin surface. Agent APIs are intentionally excluded from management roles.
var AdminAPIs = []APIPermission{
{"查看设备", "/api/admin/v1/devices", "GET", true},
{"停用设备", "/api/admin/v1/devices/:deviceId/disable", "POST", false},
{"吊销设备令牌", "/api/admin/v1/devices/:deviceId/token/revoke", "POST", false},
{"查看 Agent 版本", "/api/admin/v1/agent-app-releases", "GET", false},
{"上传 Agent APK", "/api/admin/v1/agent-app-releases", "POST", false},
{"设置当前 Agent 版本", "/api/admin/v1/agent-app-releases/current", "PUT", false},
{"下载 Agent APK", "/api/admin/v1/agent-app-releases/:releaseId/download", "GET", false},
{"查看 PDD 商品", "/api/admin/v1/pdd-products", "GET", true},
{"新增 PDD 商品", "/api/admin/v1/pdd-products", "POST", true},
{"查看 PDD 商品详情", "/api/admin/v1/pdd-products/:productId", "GET", true},
{"查看 PDD 关联 SYB 商品", "/api/admin/v1/pdd-products/:productId/related-syb-products", "GET", true},
{"修改 PDD 商品", "/api/admin/v1/pdd-products/:productId", "PATCH", true},
{"查看 PDD 商品替换记录", "/api/admin/v1/pdd-product-replacements", "GET", true},
{"查看 PDD 商品替换详情", "/api/admin/v1/pdd-product-replacements/:replacementId", "GET", true},
{"查看虾皮商品", "/api/admin/v1/shopee-products", "GET", true},
{"新增虾皮商品", "/api/admin/v1/shopee-products", "POST", true},
{"批量删除虾皮商品", "/api/admin/v1/shopee-products/batch-delete", "POST", true},
{"查看虾皮商品详情", "/api/admin/v1/shopee-products/:productId", "GET", true},
{"修改虾皮商品", "/api/admin/v1/shopee-products/:productId", "PATCH", true},
{"关联 PDD 商品", "/api/admin/v1/shopee-products/:productId/link-pdd", "POST", true},
{"恢复虾皮商品", "/api/admin/v1/shopee-products/:productId/restore", "POST", true},
{"新增虾皮规格值", "/api/admin/v1/shopee-products/:productId/specs/values", "POST", true},
{"删除虾皮规格值", "/api/admin/v1/shopee-products/:productId/specs/values", "DELETE", true},
{"设置规格映射", "/api/admin/v1/shopee-products/:productId/specs/mapping", "PUT", true},
{"清除规格映射", "/api/admin/v1/shopee-products/:productId/specs/mapping", "DELETE", true},
{"确认规格映射", "/api/admin/v1/shopee-products/:productId/specs/mapping/confirm", "POST", true},
{"确认精确规格映射", "/api/admin/v1/shopee-products/:productId/specs/mapping/confirm-exact-matches", "POST", true},
{"预览尺码匹配", "/api/admin/v1/shopee-products/:productId/specs/mapping/preview-auto-size", "POST", true},
{"AI 建议颜色映射", "/api/admin/v1/shopee-products/:productId/specs/mapping/suggest-colors", "POST", true},
{"AI 建议尺码映射", "/api/admin/v1/shopee-products/:productId/specs/mapping/suggest-sizes", "POST", true},
{"一键匹配并确认颜色尺码", "/api/admin/v1/shopee-products/:productId/specs/mapping/auto-match", "POST", true},
{"手动执行虾皮规格自动匹配", "/api/admin/v1/shopee-spec-auto-match/runs", "POST", false},
{"查看最近虾皮规格自动匹配", "/api/admin/v1/shopee-spec-auto-match/runs/latest", "GET", false},
{"查看 SYB 商品", "/api/admin/v1/syb-products", "GET", true},
{"查看 SYB 商品详情", "/api/admin/v1/syb-products/:productId", "GET", true},
{"重新解析 SYB 商品", "/api/admin/v1/syb-products/:productId/reparse", "POST", true},
{"批量重新解析 SYB 商品", "/api/admin/v1/syb-products/reparse-batch", "POST", true},
{"人工修正 SYB 商品", "/api/admin/v1/syb-products/:productId/correction", "PATCH", true},
{"手动同步 SYB 商品", "/api/admin/v1/syb-products/import", "POST", false},
{"查看 SYB 同步记录", "/api/admin/v1/syb-products/sync-runs", "GET", true},
{"查看 SYB 同步详情", "/api/admin/v1/syb-products/sync-runs/:runId", "GET", true},
{"查看档口入库码", "/api/admin/v1/syb-inner-codes", "GET", true},
{"查看档口入库码详情", "/api/admin/v1/syb-inner-codes/:recordId", "GET", true},
{"导入档口入库码", "/api/admin/v1/syb-inner-codes/import", "POST", true},
{"批量删除档口入库码", "/api/admin/v1/syb-inner-codes/batch-delete", "POST", true},
{"查看档口入库码匹配进度", "/api/admin/v1/syb-inner-codes/match-jobs/:jobId", "GET", true},
{"预检档口入库码回写", "/api/admin/v1/syb-inner-codes/apply-preview", "POST", true},
{"提交档口入库码回写", "/api/admin/v1/syb-inner-codes/apply", "POST", true},
{"查看档口入库码回写批次", "/api/admin/v1/syb-inner-codes/apply-batches/:batchId", "GET", true},
{"复核档口入库码", "/api/admin/v1/syb-inner-codes/:recordId/recheck", "POST", true},
{"重新匹配档口入库码", "/api/admin/v1/syb-inner-codes/rematch", "POST", true},
{"查看 SYB 店铺", "/api/admin/v1/syb-shops", "GET", true},
{"新增 SYB 店铺", "/api/admin/v1/syb-shops", "POST", false},
{"修改 SYB 店铺名称", "/api/admin/v1/syb-shops/:shopId/name", "PATCH", false},
{"启停 SYB 店铺", "/api/admin/v1/syb-shops/:shopId/enabled", "PATCH", false},
{"删除 SYB 店铺", "/api/admin/v1/syb-shops/:shopId", "DELETE", false},
{"从 SYB 发现店铺", "/api/admin/v1/syb-shops/discover", "POST", false},
{"查看采集规则模板", "/api/admin/v1/collection-rules/templates/:templateId", "GET", true},
{"查看采集规则", "/api/admin/v1/collection-rules", "GET", true},
{"新增采集规则", "/api/admin/v1/collection-rules", "POST", false},
{"修改采集规则", "/api/admin/v1/collection-rules/:ruleId", "PATCH", false},
{"删除采集规则", "/api/admin/v1/collection-rules/:ruleId", "DELETE", false},
{"查看采购规则", "/api/admin/v1/purchase-rules", "GET", false},
{"查看当前采购规则", "/api/admin/v1/purchase-rules/current", "GET", false},
{"新增采购规则", "/api/admin/v1/purchase-rules", "POST", false},
{"修改采购规则", "/api/admin/v1/purchase-rules/:ruleId", "PATCH", false},
{"删除采购规则", "/api/admin/v1/purchase-rules/:ruleId", "DELETE", false},
{"设置当前采购规则", "/api/admin/v1/purchase-rules/current", "PUT", false},
{"查看采集任务", "/api/admin/v1/collection-tasks", "GET", true},
{"创建采集任务", "/api/admin/v1/collection-tasks", "POST", true},
{"批量创建采集任务", "/api/admin/v1/collection-tasks/batch", "POST", true},
{"查看采集任务详情", "/api/admin/v1/collection-tasks/:taskId", "GET", true},
{"重置采集任务", "/api/admin/v1/collection-tasks/:taskId/reset", "POST", true},
{"删除采集任务", "/api/admin/v1/collection-tasks/:taskId", "DELETE", true},
{"查看采购任务", "/api/admin/v1/purchase-tasks", "GET", true},
{"预检批量采购", "/api/admin/v1/purchase-tasks/batch-preview", "POST", true},
{"批量 AI 匹配采购规格", "/api/admin/v1/purchase-tasks/batch-spec-match", "POST", true},
{"批量创建采购任务", "/api/admin/v1/purchase-tasks/batch", "POST", true},
{"批量重试采购任务", "/api/admin/v1/purchase-tasks/batch-retry", "POST", true},
{"创建备货采购任务", "/api/admin/v1/purchase-tasks/stock", "POST", true},
{"查看采购任务详情", "/api/admin/v1/purchase-tasks/:taskId", "GET", true},
{"创建采购任务", "/api/admin/v1/purchase-tasks", "POST", true},
{"处理采购规格", "/api/admin/v1/purchase-tasks/:taskId/spec-decision", "POST", true},
{"查看采购规格匹配", "/api/admin/v1/purchase-tasks/:taskId/matching", "GET", true},
{"重新尝试采购规格匹配", "/api/admin/v1/purchase-tasks/:taskId/matching/requeue", "POST", true},
{"人工选择采购规格", "/api/admin/v1/purchase-tasks/:taskId/matching/manual", "POST", true},
{"授权重新采购", "/api/admin/v1/purchase-tasks/:taskId/authorize-repurchase", "POST", true},
{"复核支付状态", "/api/admin/v1/purchase-tasks/:taskId/payment-review", "POST", true},
{"选择回填候选", "/api/admin/v1/purchase-tasks/:taskId/writeback-candidate", "POST", true},
{"取消采购任务", "/api/admin/v1/purchase-tasks/:taskId/cancel", "POST", true},
{"处理结果不明确任务", "/api/admin/v1/purchase-tasks/:taskId/resolve-unknown", "POST", true},
{"查看 AI 匹配状态", "/api/admin/v1/ai-matching-settings", "GET", true},
{"保存 AI 匹配设置", "/api/admin/v1/ai-matching-settings", "PUT", false},
{"测试 AI 服务连接", "/api/admin/v1/ai-matching-settings/test", "POST", false},
}
func PurchaserAPIs() []APIPermission {
result := make([]APIPermission, 0, len(AdminAPIs))
for _, permission := range AdminAPIs {
if permission.Purchaser {
result = append(result, permission)
}
}
return result
}