skill.ts 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320
  1. // Skill / Playmate related types
  2. // 技能 / 商品详情
  3. export interface SkillDetailVo {
  4. // 技能 / 商品ID
  5. id: string
  6. // 头像
  7. avatar: string
  8. // 昵称
  9. nickname: string
  10. // 年龄
  11. age: number
  12. // 性别:0:未知,1:男,2:女
  13. gender: 0 | 1 | 2
  14. // 评分
  15. star: number
  16. // 所在区域
  17. area: string
  18. // 语言列表
  19. languageNames: string[]
  20. // 用户封面图片
  21. cover: string
  22. // 用户编号
  23. userNo: string
  24. // 品类名称
  25. categoryName: string
  26. // 摘要
  27. summary: string
  28. // 图片列表
  29. images: string[]
  30. // 语音条
  31. voiceBar: string
  32. // 价格
  33. price: number
  34. // 单位
  35. unit: string
  36. // 标签
  37. labels: string[]
  38. }
  39. // 创建技能商品订单-二维码模式 - 响应体
  40. // 对应接口:POST /skill/create/order/qrcode
  41. export interface SkillCreateQrVo {
  42. // 1:通用码下单,2:特定码下单
  43. type: number
  44. // 综合评分
  45. star: number
  46. // 订单当前单价及数量折合法币(idr)金额
  47. currencyAmount: number
  48. // 二维码(后端返回的二维码标识/字符串)
  49. qrCode: string
  50. }
  51. // 技能 / 商品详情请求体
  52. export interface SkillDetailRequest {
  53. id: string
  54. }
  55. // 游标分页请求(公共)
  56. export interface NextDTO {
  57. // 条目数
  58. size?: number
  59. // 游标,返回获取下一页的游标,空字符串/NULL = 第一页
  60. next?: unknown
  61. }
  62. // 技能商品筛选 - 请求参数
  63. export interface SkillSearchDTO {
  64. // 品类编码
  65. code: string
  66. // 年龄,-1:不限制,0:15-25,1:25-35,2:35以上
  67. ageRange?: number
  68. // 性别:-1:无限制,0:未知,1:男,2:女
  69. gender?: number
  70. // 区域编码
  71. areCode?: string
  72. // 评分排序,-1:默认排序,0:升序,1:降序
  73. sortByStar?: number
  74. // 价格排序,-1:默认排序,0:升序,1:降序
  75. sortByPrice?: number
  76. // 价格区间,-1:无限制,0:0-1000,1:1000-1500,2:1500-2500,3:2500-5000,4:5000以上
  77. priceRange?: number
  78. // 游标分页参数
  79. page: NextDTO
  80. }
  81. // 首单折扣机会 - 对应接口 POST /skill/firstOrder/discount/chance
  82. export interface FirstOrderDiscountChanceVo {
  83. /** 当前是否有首单1折机会 */
  84. hasChance: boolean
  85. /** 当前首单折扣率(例如 0.1 表示 1 折) */
  86. discountRate: number
  87. /** 可参与优惠的 SKU 单价(金币) */
  88. eligiblePrice: number
  89. }
  90. // 技能商品 - 列表项
  91. export interface SkillSearchVo {
  92. id: string
  93. avatar: string
  94. nickname: string
  95. age: number
  96. // 性别:0:未知,1:男,2:女
  97. gender: 0 | 1 | 2
  98. // 评分
  99. star: number
  100. // 所在区域
  101. area: string
  102. // 摘要
  103. summary: string
  104. // 图片列表
  105. images: string[]
  106. // 语音条
  107. voiceBar: string
  108. // 价格
  109. price: number
  110. // 单位
  111. unit: string
  112. // 标签
  113. labels: string[]
  114. // 品类图标
  115. categoryIcon: string
  116. // 品类名称
  117. categoryName: string
  118. /** 用户编号(可选,用于排除当前用户自己的商品不展示折后价) */
  119. userNo?: string
  120. }
  121. // 技能商品列表 - 游标分页响应
  122. export interface NextVOSkillSearchVo {
  123. list: SkillSearchVo[]
  124. // 返回下一页的基准点 - 游标,NULL/空字符串 = 没有下一页
  125. next: unknown
  126. }
  127. // 创建技能商品订单-二维码模式 - 请求参数
  128. export interface SkillQrCodeCreateDto {
  129. // 技能id
  130. skillId: string
  131. // 购买数量
  132. purchaseQty?: number
  133. // 1:通用码下单,2:特定码下单
  134. type?: number
  135. }
  136. // 二维码订单-支付 - 请求参数
  137. export interface SkillQrCodePayDto {
  138. // 二维码 code(创建技能商品二维码接口返回的 qrcode 字符串)
  139. qrCode: string
  140. // 购买数量,可选;不传则使用默认数量
  141. purchaseQty?: number
  142. }
  143. // 直接技能下单-支付 - 请求参数
  144. export interface SkillOrderCreateDto {
  145. // 技能 id
  146. skillId: string
  147. // 购买数量,可选
  148. purchaseQty?: number
  149. }
  150. // 技能订单支付结果 - 响应体
  151. // 对应接口:
  152. // - POST /skill/order/payment
  153. // - POST /skill/order/qr/payment
  154. export interface OrderPaymentVo {
  155. // 订单编号
  156. orderNo: string
  157. // 金币余额
  158. goldCoinBalance: number
  159. }
  160. // 查看二维码订单信息 - 响应体
  161. export interface SkillViewQrOrderVo {
  162. // 技能/商品订单ID
  163. orderId: string
  164. // 头像
  165. avatar: string
  166. // 昵称
  167. nickname: string
  168. // 品类名称
  169. bizCategoryName: string
  170. // 单价
  171. price: number
  172. // 单位
  173. unit: string
  174. // 购买数量
  175. purchaseQty: number
  176. // 1:通用码下单,2:特定码下单
  177. type: number
  178. }
  179. // 查看二维码订单信息 - 请求体
  180. export interface SkillViewQrOrderRequest {
  181. // 二维码ID(创建二维码接口返回的字符串 qrcode)
  182. id: string
  183. }
  184. /**
  185. * 订单列表 & 订单操作相关类型
  186. * 列表对应接口:POST /skill/order/list
  187. */
  188. // 技能订单详情 - 请求体
  189. // 对应接口:POST /skill/order/detail
  190. export interface SkillOrderDetailRequest {
  191. id: string
  192. }
  193. // 通用 ID 请求体(与后端 IdDTOString 结构兼容)
  194. export interface IdDTOString {
  195. id: string
  196. }
  197. // 订单退款附件
  198. export interface OrderRefundAttachment {
  199. // 附件地址
  200. attachmentUrl?: string
  201. // 附件类型
  202. type?: number
  203. // 文件名
  204. fileName?: string
  205. }
  206. // 通用文件附件(与后端 FileAttachmet 结构兼容)
  207. export interface FileAttachment {
  208. // 附件地址
  209. attachmentUrl?: string
  210. // 附件类型
  211. type?: number
  212. // 文件名
  213. fileName?: string
  214. }
  215. // 订单退款申请请求体
  216. // 对应接口:POST /skill/order/refund/apply
  217. export interface OrderRefundApplyDTO {
  218. // 订单编号
  219. orderId: string
  220. // 退款原因
  221. reason?: string
  222. // 附件列表
  223. attachments?: OrderRefundAttachment[]
  224. // Playmate supplemental reason
  225. playmateReason?: string
  226. // Playmate supplemental attachments
  227. playmateAttachments?: OrderRefundAttachment[]
  228. }
  229. // 订单评分请求体
  230. // 对应接口:POST /skill/order/star
  231. export interface OrderStarDTO {
  232. // 订单编号
  233. orderId: string
  234. // 评分(1-5)
  235. star: number
  236. }
  237. // 查看付费订单信息 - 列表项
  238. export interface SkillOrderInfoVo {
  239. // 订单ID
  240. orderId: string
  241. // 头像
  242. avatar: string
  243. // 昵称
  244. nickname: string
  245. // 品类名称
  246. bizCategoryName: string
  247. // 品类图标
  248. categoryIcon: string
  249. // 单价
  250. price: number
  251. // 单位
  252. unit: string
  253. // 购买数量
  254. purchaseQty: number
  255. // 状态:0:待支付,1:已支付,2:完成,3:退款/取消
  256. status: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
  257. // 下单时间
  258. createTime: number
  259. // 评分
  260. star?: number
  261. // 是否已申请退款
  262. refundApply: boolean
  263. // 总价
  264. totalAmount: number
  265. // 客户备注
  266. customerRemark?: string
  267. // 用户性别
  268. gender?: 0 | 1 | 2
  269. }
  270. // 订单详情 - 响应体
  271. // 对应接口:POST /skill/order/detail
  272. export interface SkillOrderInfoDetailVo {
  273. // 查看付费订单信息
  274. orderInfo: SkillOrderInfoVo
  275. // 客户理由
  276. reason?: string
  277. // 客户附件
  278. attachments?: FileAttachment[]
  279. // 陪玩师凭证理由
  280. playmateReason?: string
  281. // 陪玩师凭证附件
  282. playmateAttachments?: FileAttachment[]
  283. }
  284. // 订单列表 - 游标分页响应
  285. export interface NextVOSkillOrderInfoVo {
  286. // 查看付费订单信息
  287. list: SkillOrderInfoVo[]
  288. // 返回下一页的基准点 - 游标,NULL/空字符串 = 没有下一页
  289. next: unknown
  290. }
  291. // 订单列表请求体
  292. export interface SkillOrderListDTO {
  293. status: number
  294. page: NextDTO
  295. }