user.proto 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400
  1. syntax = "proto3";
  2. package gorpc;
  3. option go_package = "code.clickto.dev/nomo-server/go-service-pb/client";
  4. import "pb/common.proto";
  5. // 白名单表
  6. message UserWhiteVo {
  7. int64 id = 1; // 主键ID
  8. string userIdentifier = 2; // 用户
  9. UserType userType = 3; // 用户类型 1 设备 2 账号
  10. Status status = 4; // 状态
  11. int64 createTime = 5; // 创建时间
  12. int64 updateTime = 6; // 更新时间
  13. }
  14. // 测试用户表
  15. message UserTestVo {
  16. int64 id = 1; // 主键ID
  17. string userIdentifier = 2; // 用户
  18. UserType userType = 3; // 用户类型 1 设备 2 账号
  19. string area = 4; // 指定地区
  20. string apis = 5; // 指定接口
  21. string routers = 6; // 指定路由
  22. Status status = 7; // 状态
  23. int64 createTime = 8; // 创建时间
  24. int64 updateTime = 9; // 更新时间
  25. }
  26. // Account
  27. message AccountVo {
  28. int64 id = 1; // 主键ID
  29. string userUuid = 2; // 用户UUID
  30. string productCode = 3; // 产品ID
  31. string username = 4; // 用户名
  32. string password = 5; // 密码
  33. string accountKey = 6; // 账号KEY
  34. string accountPassword = 7; // 账号密码
  35. int64 accountType = 8; // 账号类型
  36. int64 registMode = 9; // 注册方式
  37. string provider = 10; // 授权登录标识
  38. BoolInt whitelistUser = 11; // 白名单用户
  39. BoolInt activated = 12; // 是否激活
  40. string config = 13; // 配置
  41. Status status = 14; // 状态
  42. string avatar = 15; // 头像
  43. string area = 16; // 指定地区
  44. string remark = 17; // 备注
  45. string deviceId = 18; // 设备ID
  46. string platform = 19; // 平台
  47. string channel = 20; // 渠道
  48. string deviceModel = 21; // 设备型号
  49. string deviceOs = 22; // 设备系统
  50. int64 timezone = 23; // 时区
  51. string lang = 24; // 语言
  52. string ip = 25; // IP
  53. string country = 26; // 国家
  54. string province = 27; // 省份
  55. string city = 28; // 城市
  56. string isp = 29; // ISP
  57. int64 appVer = 30; // 产品版本号
  58. int64 appRuntimeCode = 31; // 产品运行码
  59. int64 createTime = 32; // 创建时间
  60. int64 updateTime = 33; // 更新时间
  61. string version = 34; // 数据版本
  62. string sessionId = 35; // 登录凭证
  63. int64 sessionCreateTime = 36; // 凭证创建时间
  64. }
  65. message AccountListReq {
  66. Page page = 1;
  67. AccountVo vo = 2;
  68. repeated string productCodes = 3; // 产品code
  69. repeated int64 excludeIds = 4; // 排除的ID
  70. }
  71. message AccountListResp {
  72. int64 total = 1;
  73. repeated AccountVo list = 2;
  74. }
  75. // AccountDevice
  76. message AccountDeviceVo {
  77. int64 id = 1;
  78. int64 accountId = 2; // 用户ID
  79. int64 deviceId = 3; // 设备ID
  80. string sessionId = 4; // 登录凭证
  81. int64 sessionCreateTime = 5; // 凭证创建时间
  82. int64 updateTime = 6;
  83. int64 createTime = 7;
  84. }
  85. message AccountDeviceListReq {
  86. Page page = 1;
  87. AccountDeviceVo vo = 2;
  88. repeated int64 excludeIds = 3; // 排除的ID
  89. }
  90. message AccountDeviceListResp {
  91. int64 total = 1;
  92. repeated AccountDeviceVo list = 2;
  93. }
  94. message UserWhiteListReq {
  95. Page page = 1;
  96. UserWhiteVo vo = 2;
  97. repeated int64 excludeIds = 3; // 排除的ID
  98. }
  99. message UserWhiteListResp {
  100. int64 total = 1;
  101. repeated UserWhiteVo list = 2;
  102. }
  103. message UserWhiteAddReq { UserWhiteVo vo = 1; }
  104. message UserWhiteAddResp { UserWhiteVo vo = 1; }
  105. message UserWhiteGetReq { UserWhiteVo vo = 1; }
  106. message UserWhiteGetResp { UserWhiteVo vo = 1; }
  107. message UserWhiteUpdateReq { UserWhiteVo vo = 1; }
  108. message UserWhiteUpdateResp { UserWhiteVo vo = 1; }
  109. message UserWhiteDelReq { repeated int64 ids = 1; }
  110. message UserTestListReq {
  111. Page page = 1;
  112. UserTestVo vo = 2;
  113. repeated int64 excludeIds = 3; // 排除的ID
  114. }
  115. message UserTestListResp {
  116. int64 total = 1;
  117. repeated UserTestVo list = 2;
  118. }
  119. message UserTestAddReq { UserTestVo vo = 1; }
  120. message UserTestAddResp { UserTestVo vo = 1; }
  121. message UserTestGetReq { UserTestVo vo = 1; }
  122. message UserTestGetResp { UserTestVo vo = 1; }
  123. message UserTestUpdateReq { UserTestVo vo = 1; }
  124. message UserTestUpdateResp { UserTestVo vo = 1; }
  125. message UserTestDelReq { repeated int64 ids = 1; }
  126. message DeviceVo {
  127. int64 id = 1;
  128. string userUuid = 2;
  129. string productCode = 3;
  130. string deviceId = 4;
  131. string accountKey = 5;
  132. string accountPassword = 6;
  133. string platform = 7;
  134. string channel = 8;
  135. string referChannel = 9;
  136. string deviceModel = 10;
  137. string deviceOs = 11;
  138. int64 timezone = 12;
  139. string lang = 13;
  140. int64 appVer = 14;
  141. string ip = 15;
  142. string country = 16;
  143. string province = 17;
  144. string city = 18;
  145. string isp = 19;
  146. int64 createTime = 20;
  147. int64 updateTime = 21;
  148. Status status = 22;
  149. string refer = 23;
  150. int64 whitelistUser = 24; // 白名单用户 1正常用户 2: 白名单用户
  151. int64 testUser = 25; // 测试用户 1正常用户 2: 测试用户
  152. string mockCountry = 26; // 指定国家
  153. string mockApi = 27; // 指定API
  154. string mockRouter = 28; // 指定路由
  155. string referSubChannel = 29;
  156. string firebaseToken = 30; // firebase token
  157. string appVerName = 31; // 版本
  158. }
  159. message DeviceListReq {
  160. Page page = 1;
  161. DeviceVo vo = 2;
  162. repeated string productCodes = 3; // 产品code
  163. repeated int64 excludeIds = 4; // 排除的ID
  164. repeated string dateRange = 5; // 日期范围
  165. int64 createStartTime = 6; // 创建开始时间
  166. int64 createEndTime = 7; // 创建结束时间
  167. repeated string deviceIds = 8; // 设备IDs
  168. string country = 9; // 国家
  169. string vn = 10; // 运营商
  170. }
  171. message DeviceListRes {
  172. int64 total = 1;
  173. repeated DeviceVo list = 2;
  174. }
  175. message UserAppConfigVo {
  176. int64 id = 1;
  177. string deviceId = 2;
  178. string key = 3;
  179. string value = 4;
  180. Status status = 5;
  181. int64 createTime = 6;
  182. int64 updateTime = 7;
  183. }
  184. message UserAppConfigGetReq { UserAppConfigVo vo = 1; }
  185. message UserAppConfigListReq {
  186. Page page = 1;
  187. UserAppConfigVo vo = 2;
  188. }
  189. message UserAppConfigListRes {
  190. int64 total = 1;
  191. repeated UserAppConfigVo list = 2;
  192. }
  193. message UserVo {
  194. int64 id = 1; // ID
  195. string productCode = 2; // 产品标识
  196. string uuid = 3; // 用户唯一ID
  197. string deviceId = 4; // 注册时使用的设备ID
  198. int64 accountType = 5; // 值为1时表示实体尚未注册账号, 为其他值时表示实体已经注册了账号(为了让 productCode+deviceId+accountType 能唯一确定一个用户)
  199. string registType = 6; // 注册方式 normal email phone wechat qq google apple (其实可以通过查询 user_credential 中最早的一条记录的 identityType 来确定)
  200. int64 registFrom = 7; // 从哪里注册 0: unknown 1: guest 2: app 3: web 4: pc 9999: invalid
  201. string referChannel = 8; // 推广渠道
  202. string referSubChannel = 9; // 推广子渠道
  203. string nickname = 10; // 用户昵称
  204. string avatar = 11; // 用户头像地址
  205. string config = 12; // 保留字段,用于扩展
  206. Status status = 13; // 状态 1: 正常 2: 冻结
  207. int64 createTime = 14; // 创建时间
  208. int64 updateTime = 15; // 修改时间
  209. }
  210. message UserAddReq { UserVo vo = 1; }
  211. message UserAddResp { UserVo vo = 1; }
  212. message UserUpdateReq { UserVo vo = 1; }
  213. message UserUpdateResp { UserVo vo = 1; }
  214. message UserDelReq { repeated int64 ids = 1; }
  215. message UserGetReq { UserVo vo = 1; }
  216. message UserGetResp { UserVo vo = 1; }
  217. message UserListReq {
  218. Page page = 1;
  219. UserVo vo = 2;
  220. repeated int64 excludeIds = 3; // 排除的ID
  221. repeated string productCodes = 4; // 产品code
  222. repeated string uuids = 5; // 用户唯一ID
  223. repeated string deviceIds = 6; // 设备ID (device 表的 id)
  224. }
  225. message UserListResp {
  226. int64 total = 1;
  227. repeated UserVo list = 2;
  228. }
  229. message UserCredentialVo {
  230. int64 id = 1; // ID
  231. int64 userId = 2; // 用户ID
  232. string productCode = 3; // 产品标识
  233. string identityType = 4; // 凭证类型: username, email, phone, wechat, qq, google, apple 等
  234. string identifier = 5; // 凭证标识
  235. string credential = 6; // 凭证密钥(密码/token)
  236. int64 isVerified = 7; // 是否已验证 1: 已验证 2: 未验证
  237. int64 registFrom = 8; // 从哪里注册 0: unknown 1: guest 2: app 3: web 4: pc 9999: invalid
  238. Status status = 9; // 状态 1: 正常 2: 禁用
  239. int64 createTime = 10; // 创建时间/注册时间
  240. int64 updateTime = 11; // 更新时间
  241. }
  242. message UserCredentialAddReq { UserCredentialVo vo = 1; }
  243. message UserCredentialAddResp { UserCredentialVo vo = 1; }
  244. message UserCredentialUpdateReq { UserCredentialVo vo = 1; }
  245. message UserCredentialUpdateResp { UserCredentialVo vo = 1; }
  246. message UserCredentialDelReq { repeated int64 ids = 1; }
  247. message UserCredentialGetReq { UserCredentialVo vo = 1; }
  248. message UserCredentialGetResp { UserCredentialVo vo = 1; }
  249. message UserCredentialListReq {
  250. Page page = 1;
  251. UserCredentialVo vo = 2;
  252. repeated int64 excludeIds = 3; // 排除的ID
  253. repeated int64 userIds = 4; // 用户ID
  254. }
  255. message UserCredentialListResp {
  256. int64 total = 1;
  257. repeated UserCredentialVo list = 2;
  258. }
  259. message UserDeviceVo {
  260. int64 id = 1; // ID
  261. int64 userId = 2; // 用户ID
  262. int64 did = 3; // 设备ID
  263. string sessionId = 4; // 登录凭证
  264. int64 sessionCreateTime = 5; // 凭证创建时间
  265. Status status = 6; // 状态 1: 正常 2: 禁用
  266. int64 updateTime = 7; // 更新时间
  267. int64 createTime = 8; // 创建时间
  268. }
  269. message UserDeviceAddReq { UserDeviceVo vo = 1; }
  270. message UserDeviceAddResp { UserDeviceVo vo = 1; }
  271. message UserDeviceUpdateReq { UserDeviceVo vo = 1; }
  272. message UserDeviceUpdateResp { UserDeviceVo vo = 1; }
  273. message UserDeviceDelReq { repeated int64 ids = 1; }
  274. message UserDeviceGetReq { UserDeviceVo vo = 1; }
  275. message UserDeviceGetResp { UserDeviceVo vo = 1; }
  276. message UserDeviceListReq {
  277. Page page = 1;
  278. UserDeviceVo vo = 2;
  279. repeated int64 excludeIds = 3; // 排除的ID
  280. repeated int64 userIds = 4; // 用户ID
  281. repeated int64 dids = 5; // device 表的 id
  282. }
  283. message UserDeviceListResp {
  284. int64 total = 1;
  285. repeated UserDeviceVo list = 2;
  286. }
  287. // 用户模块
  288. service GoUserClient {
  289. rpc Ping(Request) returns (Response);
  290. // 用户app配置管理(ring)
  291. rpc UserAppConfigAdd(UserAppConfigVo) returns (UserAppConfigVo);
  292. rpc UserAppConfigUpdate(UserAppConfigVo) returns (UserAppConfigVo);
  293. rpc UserAppConfigDel(Ids) returns (Empty);
  294. rpc UserAppConfigGet(UserAppConfigGetReq) returns (UserAppConfigVo);
  295. rpc UserAppConfigList(UserAppConfigListReq) returns (UserAppConfigListRes);
  296. // Device Model
  297. // DeviceAdd
  298. rpc DeviceAdd(DeviceVo) returns (DeviceVo);
  299. rpc DeviceUpdate(DeviceVo) returns (DeviceVo);
  300. rpc DeviceDel(Ids) returns (Empty);
  301. rpc DeviceGet(DeviceVo) returns (DeviceVo);
  302. rpc DeviceList(DeviceListReq) returns (DeviceListRes);
  303. // Account Model
  304. // AccountAdd
  305. rpc AccountAdd(AccountVo) returns (AccountVo);
  306. rpc AccountUpdate(AccountVo) returns (AccountVo);
  307. rpc AccountDel(Ids) returns (Empty);
  308. rpc AccountGet(AccountVo) returns (AccountVo);
  309. rpc AccountList(AccountListReq) returns (AccountListResp);
  310. // AccountDevice Model
  311. // AccountDeviceAdd
  312. rpc AccountDeviceAdd(AccountDeviceVo) returns (AccountDeviceVo);
  313. rpc AccountDeviceUpdate(AccountDeviceVo) returns (AccountDeviceVo);
  314. rpc AccountDeviceDel(Ids) returns (Empty);
  315. rpc AccountDeviceGet(AccountDeviceVo) returns (AccountDeviceVo);
  316. rpc AccountDeviceList(AccountDeviceListReq) returns (AccountDeviceListResp);
  317. // 用户白名单管理
  318. rpc UserWhiteAdd(UserWhiteAddReq) returns (UserWhiteAddResp);
  319. rpc UserWhiteUpdate(UserWhiteUpdateReq) returns (UserWhiteUpdateResp);
  320. rpc UserWhiteDel(UserWhiteDelReq) returns (Empty);
  321. rpc UserWhiteGet(UserWhiteGetReq) returns (UserWhiteGetResp);
  322. rpc UserWhiteList(UserWhiteListReq) returns (UserWhiteListResp);
  323. // 测试用户管理
  324. rpc UserTestAdd(UserTestAddReq) returns (UserTestAddResp);
  325. rpc UserTestUpdate(UserTestUpdateReq) returns (UserTestUpdateResp);
  326. rpc UserTestDel(UserTestDelReq) returns (Empty);
  327. rpc UserTestGet(UserTestGetReq) returns (UserTestGetResp);
  328. rpc UserTestList(UserTestListReq) returns (UserTestListResp);
  329. // User Model
  330. // UserAdd
  331. rpc UserAdd(UserAddReq) returns (UserAddResp);
  332. rpc UserUpdate(UserUpdateReq) returns (UserUpdateResp);
  333. rpc UserDel(UserDelReq) returns (Empty);
  334. rpc UserGet(UserGetReq) returns (UserGetResp);
  335. rpc UserList(UserListReq) returns (UserListResp);
  336. // UserCredential Model
  337. // UserCredentialAdd
  338. rpc UserCredentialAdd(UserCredentialAddReq) returns (UserCredentialAddResp);
  339. rpc UserCredentialUpdate(UserCredentialUpdateReq) returns (UserCredentialUpdateResp);
  340. rpc UserCredentialDel(UserCredentialDelReq) returns (Empty);
  341. rpc UserCredentialGet(UserCredentialGetReq) returns (UserCredentialGetResp);
  342. rpc UserCredentialList(UserCredentialListReq) returns (UserCredentialListResp);
  343. // UserDevice Model
  344. // UserDeviceAdd
  345. rpc UserDeviceAdd(UserDeviceAddReq) returns (UserDeviceAddResp);
  346. rpc UserDeviceUpdate(UserDeviceUpdateReq) returns (UserDeviceUpdateResp);
  347. rpc UserDeviceDel(UserDeviceDelReq) returns (Empty);
  348. rpc UserDeviceGet(UserDeviceGetReq) returns (UserDeviceGetResp);
  349. rpc UserDeviceList(UserDeviceListReq) returns (UserDeviceListResp);
  350. }