import { Router } from 'express' import { confirmWorkerConsignmentFriendAdded, getWorkerConsignmentPriceSuggestion, listWorkerConsignments, publishWorkerConsignment, submitWorkerConsignmentGiftEvidence, } from '../../services/worker-platform/consignment-worker-service.js' import { sendRouteError } from '../../utils/http.js' import { getRequiredWorkerSession, requireActiveWorker } from './session.js' const router = Router() /** * POST /api/v1/worker/consignment/publish * 打手在接单平台直接提报苏尔南手枪寄卖 */ router.post('/consignment/publish', requireActiveWorker, async (req, res) => { try { const session = getRequiredWorkerSession(req) const result = await publishWorkerConsignment(session.workerId, req.body || {}) res.json({ ok: true, data: result }) } catch (error) { sendRouteError(res, error, '提交寄卖失败', '[worker/consignment/publish]') } }) /** * GET /api/v1/worker/consignment/price-suggestion?system=&series=&diamondLevel= * 发布寄卖时按规格从「接单模板」带出建议价(安卓+暗潮+1钻 → 模板价 ¥120) */ router.get('/consignment/price-suggestion', requireActiveWorker, async (req, res) => { try { const result = await getWorkerConsignmentPriceSuggestion({ system: req.query.system, series: req.query.series, diamondLevel: req.query.diamondLevel, brillianceCount: req.query.brillianceCount, }) res.json({ ok: true, data: result }) } catch (error) { sendRouteError(res, error, '获取建议价失败', '[worker/consignment/price-suggestion]') } }) /** * GET /api/v1/worker/consignment/my-items * 打手查看自己在接单平台寄卖的手枪列表与状态 */ router.get('/consignment/my-items', async (req, res) => { try { const session = getRequiredWorkerSession(req) const result = await listWorkerConsignments(session.workerId) res.json({ ok: true, data: result }) } catch (error) { sendRouteError(res, error, '获取我的寄卖列表失败', '[worker/consignment/my-items]') } }) /** * POST /api/v1/worker/consignment/items/:submissionId/confirm-friend * 卖家确认已加好买家好友 → 进入赠送冷却期(确认后未完成赠送押金不退) */ router.post( '/consignment/items/:submissionId/confirm-friend', requireActiveWorker, async (req, res) => { try { const session = getRequiredWorkerSession(req) const result = await confirmWorkerConsignmentFriendAdded( session.workerId, String(req.params.submissionId || ''), session.username || '', ) res.json({ ok: true, data: result }) } catch (error) { sendRouteError(res, error, '确认加好友失败', '[worker/consignment/confirm-friend]') } }, ) /** * POST /api/v1/worker/consignment/items/:submissionId/gift-evidence * 卖家上传赠送完成截图,工单转待验收交给客服审核(冷却未结束会被拒绝) */ router.post( '/consignment/items/:submissionId/gift-evidence', requireActiveWorker, async (req, res) => { try { const session = getRequiredWorkerSession(req) const result = await submitWorkerConsignmentGiftEvidence( session.workerId, String(req.params.submissionId || ''), req.body || {}, session, ) res.json({ ok: true, data: result }) } catch (error) { sendRouteError(res, error, '提交赠送截图失败', '[worker/consignment/gift-evidence]') } }, ) export default router