schema.go 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420
  1. // Code generated by ent, DO NOT EDIT.
  2. package migrate
  3. import (
  4. "entgo.io/ent/dialect/entsql"
  5. "entgo.io/ent/dialect/sql/schema"
  6. "entgo.io/ent/schema/field"
  7. )
  8. var (
  9. // ContactColumns holds the columns for the "contact" table.
  10. ContactColumns = []*schema.Column{
  11. {Name: "id", Type: field.TypeUint64, Increment: true},
  12. {Name: "created_at", Type: field.TypeTime, Comment: "Create Time | 创建日期"},
  13. {Name: "updated_at", Type: field.TypeTime, Comment: "Update Time | 修改日期"},
  14. {Name: "status", Type: field.TypeUint8, Nullable: true, Comment: "Status 1: normal 2: ban | 状态 1 正常 2 禁用", Default: 1},
  15. {Name: "deleted_at", Type: field.TypeTime, Nullable: true, Comment: "Delete Time | 删除日期"},
  16. {Name: "wx_wxid", Type: field.TypeString, Nullable: true, Comment: "属主微信id", Default: ""},
  17. {Name: "type", Type: field.TypeInt, Nullable: true, Comment: "联系人类型:1好友,2群组,3公众号,4企业微信联系人", Default: 1},
  18. {Name: "wxid", Type: field.TypeString, Comment: "微信id 公众号微信ID", Default: ""},
  19. {Name: "account", Type: field.TypeString, Comment: "微信账号", Default: ""},
  20. {Name: "nickname", Type: field.TypeString, Comment: "微信昵称 群备注名称", Default: ""},
  21. {Name: "markname", Type: field.TypeString, Comment: "备注名", Default: ""},
  22. {Name: "headimg", Type: field.TypeString, Comment: "头像", Default: ""},
  23. {Name: "sex", Type: field.TypeInt, Comment: "性别 0未知 1男 2女", Default: 0},
  24. {Name: "starrole", Type: field.TypeString, Comment: "星标 65/67=星标 1/3=未星标", Default: ""},
  25. {Name: "dontseeit", Type: field.TypeInt, Comment: "不让他看我的朋友圈 0可以看 1不让看", Default: 0},
  26. {Name: "dontseeme", Type: field.TypeInt, Comment: "不看他的朋友圈 0可以看 1不看 1=开启了不看他 128/129=仅聊天", Default: 0},
  27. {Name: "lag", Type: field.TypeString, Comment: "所属标签id清单,多开会用逗号隔开", Default: ""},
  28. {Name: "gid", Type: field.TypeString, Comment: "群组id", Default: ""},
  29. {Name: "gname", Type: field.TypeString, Comment: "群组名称", Default: ""},
  30. {Name: "v3", Type: field.TypeString, Comment: "v3数据", Default: ""},
  31. }
  32. // ContactTable holds the schema information for the "contact" table.
  33. ContactTable = &schema.Table{
  34. Name: "contact",
  35. Columns: ContactColumns,
  36. PrimaryKey: []*schema.Column{ContactColumns[0]},
  37. Indexes: []*schema.Index{
  38. {
  39. Name: "contact_wx_wxid_wxid",
  40. Unique: true,
  41. Columns: []*schema.Column{ContactColumns[5], ContactColumns[7]},
  42. },
  43. {
  44. Name: "contact_wxid",
  45. Unique: false,
  46. Columns: []*schema.Column{ContactColumns[7]},
  47. },
  48. {
  49. Name: "contact_type",
  50. Unique: false,
  51. Columns: []*schema.Column{ContactColumns[6]},
  52. },
  53. {
  54. Name: "contact_gid",
  55. Unique: false,
  56. Columns: []*schema.Column{ContactColumns[17]},
  57. },
  58. },
  59. }
  60. // LabelColumns holds the columns for the "label" table.
  61. LabelColumns = []*schema.Column{
  62. {Name: "id", Type: field.TypeUint64, Increment: true},
  63. {Name: "created_at", Type: field.TypeTime, Comment: "Create Time | 创建日期"},
  64. {Name: "updated_at", Type: field.TypeTime, Comment: "Update Time | 修改日期"},
  65. {Name: "status", Type: field.TypeUint8, Nullable: true, Comment: "Status 1: normal 2: ban | 状态 1 正常 2 禁用", Default: 1},
  66. {Name: "deleted_at", Type: field.TypeTime, Nullable: true, Comment: "Delete Time | 删除日期"},
  67. {Name: "type", Type: field.TypeInt, Comment: "标签类型:1好友,2群组,3公众号,4企业微信联系人", Default: 1},
  68. {Name: "name", Type: field.TypeString, Comment: "标签名称", Default: ""},
  69. {Name: "from", Type: field.TypeInt, Comment: "标签来源:1后台创建 2个微同步", Default: 1},
  70. {Name: "mode", Type: field.TypeInt, Comment: "标签模式:1动态 2静态", Default: 1},
  71. {Name: "conditions", Type: field.TypeString, Nullable: true, Comment: "标签的触达条件", Default: ""},
  72. }
  73. // LabelTable holds the schema information for the "label" table.
  74. LabelTable = &schema.Table{
  75. Name: "label",
  76. Columns: LabelColumns,
  77. PrimaryKey: []*schema.Column{LabelColumns[0]},
  78. Indexes: []*schema.Index{
  79. {
  80. Name: "label_name_from_mode",
  81. Unique: true,
  82. Columns: []*schema.Column{LabelColumns[6], LabelColumns[7], LabelColumns[8]},
  83. },
  84. },
  85. }
  86. // LabelRelationshipColumns holds the columns for the "label_relationship" table.
  87. LabelRelationshipColumns = []*schema.Column{
  88. {Name: "id", Type: field.TypeUint64, Increment: true},
  89. {Name: "created_at", Type: field.TypeTime, Comment: "Create Time | 创建日期"},
  90. {Name: "updated_at", Type: field.TypeTime, Comment: "Update Time | 修改日期"},
  91. {Name: "status", Type: field.TypeUint8, Nullable: true, Comment: "Status 1: normal 2: ban | 状态 1 正常 2 禁用", Default: 1},
  92. {Name: "deleted_at", Type: field.TypeTime, Nullable: true, Comment: "Delete Time | 删除日期"},
  93. {Name: "contact_id", Type: field.TypeUint64, Comment: "联系人 ID", Default: 1},
  94. {Name: "label_id", Type: field.TypeUint64, Comment: "标签 ID", Default: 1},
  95. }
  96. // LabelRelationshipTable holds the schema information for the "label_relationship" table.
  97. LabelRelationshipTable = &schema.Table{
  98. Name: "label_relationship",
  99. Columns: LabelRelationshipColumns,
  100. PrimaryKey: []*schema.Column{LabelRelationshipColumns[0]},
  101. ForeignKeys: []*schema.ForeignKey{
  102. {
  103. Symbol: "label_relationship_contact_contact_relationships",
  104. Columns: []*schema.Column{LabelRelationshipColumns[5]},
  105. RefColumns: []*schema.Column{ContactColumns[0]},
  106. OnDelete: schema.NoAction,
  107. },
  108. {
  109. Symbol: "label_relationship_label_label_relationships",
  110. Columns: []*schema.Column{LabelRelationshipColumns[6]},
  111. RefColumns: []*schema.Column{LabelColumns[0]},
  112. OnDelete: schema.NoAction,
  113. },
  114. },
  115. Indexes: []*schema.Index{
  116. {
  117. Name: "labelrelationship_label_id",
  118. Unique: false,
  119. Columns: []*schema.Column{LabelRelationshipColumns[6]},
  120. },
  121. {
  122. Name: "labelrelationship_contact_id",
  123. Unique: false,
  124. Columns: []*schema.Column{LabelRelationshipColumns[5]},
  125. },
  126. },
  127. }
  128. // MessageColumns holds the columns for the "message" table.
  129. MessageColumns = []*schema.Column{
  130. {Name: "id", Type: field.TypeInt, Increment: true},
  131. {Name: "wx_wxid", Type: field.TypeString, Nullable: true, Comment: "属主微信id", Default: ""},
  132. {Name: "wxid", Type: field.TypeString, Comment: "微信id 公众号微信ID", Default: ""},
  133. {Name: "content", Type: field.TypeString, Comment: "微信消息内容", Default: ""},
  134. }
  135. // MessageTable holds the schema information for the "message" table.
  136. MessageTable = &schema.Table{
  137. Name: "message",
  138. Columns: MessageColumns,
  139. PrimaryKey: []*schema.Column{MessageColumns[0]},
  140. }
  141. // MessageRecordsColumns holds the columns for the "message_records" table.
  142. MessageRecordsColumns = []*schema.Column{
  143. {Name: "id", Type: field.TypeUint64, Increment: true},
  144. {Name: "created_at", Type: field.TypeTime, Comment: "Create Time | 创建日期"},
  145. {Name: "updated_at", Type: field.TypeTime, Comment: "Update Time | 修改日期"},
  146. {Name: "status", Type: field.TypeUint8, Nullable: true, Comment: "Status 1: normal 2: ban | 状态 1 正常 2 禁用", Default: 1},
  147. {Name: "deleted_at", Type: field.TypeTime, Nullable: true, Comment: "Delete Time | 删除日期"},
  148. {Name: "bot_wxid", Type: field.TypeString, Comment: "机器人微信 id"},
  149. {Name: "contact_id", Type: field.TypeInt, Comment: "联系人 id"},
  150. {Name: "contact_type", Type: field.TypeInt, Comment: "类型:1好友,2群组,3企业微信联系人", Default: 1},
  151. {Name: "contact_wxid", Type: field.TypeString, Comment: "接收方微信 id", Default: ""},
  152. {Name: "content_type", Type: field.TypeInt, Comment: "内容类型 1 文本 2 文件", Default: 1},
  153. {Name: "content", Type: field.TypeString, Comment: "发送内容", Default: ""},
  154. {Name: "error_detail", Type: field.TypeString, Comment: "异常原因", Default: ""},
  155. {Name: "send_time", Type: field.TypeTime, Nullable: true, Comment: "发送时间"},
  156. {Name: "source_type", Type: field.TypeInt, Comment: "源类型 1 点发 2 群发 3 SOP", Default: 1},
  157. {Name: "source_id", Type: field.TypeInt, Comment: "源 ID", Default: 1},
  158. {Name: "sub_source_id", Type: field.TypeInt, Comment: "次源 ID", Default: 1},
  159. }
  160. // MessageRecordsTable holds the schema information for the "message_records" table.
  161. MessageRecordsTable = &schema.Table{
  162. Name: "message_records",
  163. Columns: MessageRecordsColumns,
  164. PrimaryKey: []*schema.Column{MessageRecordsColumns[0]},
  165. Indexes: []*schema.Index{
  166. {
  167. Name: "messagerecords_source_type",
  168. Unique: false,
  169. Columns: []*schema.Column{MessageRecordsColumns[13]},
  170. },
  171. },
  172. }
  173. // ServerColumns holds the columns for the "server" table.
  174. ServerColumns = []*schema.Column{
  175. {Name: "id", Type: field.TypeUint64, Increment: true},
  176. {Name: "created_at", Type: field.TypeTime, Comment: "Create Time | 创建日期"},
  177. {Name: "updated_at", Type: field.TypeTime, Comment: "Update Time | 修改日期"},
  178. {Name: "status", Type: field.TypeUint8, Nullable: true, Comment: "Status 1: normal 2: ban | 状态 1 正常 2 禁用", Default: 1},
  179. {Name: "deleted_at", Type: field.TypeTime, Nullable: true, Comment: "Delete Time | 删除日期"},
  180. {Name: "name", Type: field.TypeString, Comment: "名称"},
  181. {Name: "public_ip", Type: field.TypeString, Comment: "公网ip"},
  182. {Name: "private_ip", Type: field.TypeString, Comment: "内网ip"},
  183. {Name: "admin_port", Type: field.TypeString, Comment: "管理端口"},
  184. }
  185. // ServerTable holds the schema information for the "server" table.
  186. ServerTable = &schema.Table{
  187. Name: "server",
  188. Columns: ServerColumns,
  189. PrimaryKey: []*schema.Column{ServerColumns[0]},
  190. Indexes: []*schema.Index{
  191. {
  192. Name: "server_name",
  193. Unique: false,
  194. Columns: []*schema.Column{ServerColumns[5]},
  195. },
  196. {
  197. Name: "server_private_ip",
  198. Unique: false,
  199. Columns: []*schema.Column{ServerColumns[7]},
  200. },
  201. {
  202. Name: "server_public_ip",
  203. Unique: true,
  204. Columns: []*schema.Column{ServerColumns[6]},
  205. },
  206. },
  207. }
  208. // SopNodeColumns holds the columns for the "sop_node" table.
  209. SopNodeColumns = []*schema.Column{
  210. {Name: "id", Type: field.TypeUint64, Increment: true},
  211. {Name: "created_at", Type: field.TypeTime, Comment: "Create Time | 创建日期"},
  212. {Name: "updated_at", Type: field.TypeTime, Comment: "Update Time | 修改日期"},
  213. {Name: "status", Type: field.TypeUint8, Nullable: true, Comment: "Status 1: normal 2: ban | 状态 1 正常 2 禁用", Default: 1},
  214. {Name: "deleted_at", Type: field.TypeTime, Nullable: true, Comment: "Delete Time | 删除日期"},
  215. {Name: "parent_id", Type: field.TypeUint64, Comment: "父节点 ID"},
  216. {Name: "name", Type: field.TypeString, Comment: "节点名称", Default: ""},
  217. {Name: "condition_type", Type: field.TypeInt, Comment: "触发条件类型 1 客户回复后触发 2 超时后触发", Default: 1},
  218. {Name: "condition_list", Type: field.TypeJSON, Nullable: true, Comment: "触发语义列表 当为空时则代表用户回复任意内容后触发"},
  219. {Name: "action_message", Type: field.TypeJSON, Nullable: true, Comment: "命中后发送的消息内容"},
  220. {Name: "action_label", Type: field.TypeJSON, Nullable: true, Comment: "命中后需要打的标签"},
  221. {Name: "stage_id", Type: field.TypeUint64, Comment: "阶段 ID"},
  222. }
  223. // SopNodeTable holds the schema information for the "sop_node" table.
  224. SopNodeTable = &schema.Table{
  225. Name: "sop_node",
  226. Columns: SopNodeColumns,
  227. PrimaryKey: []*schema.Column{SopNodeColumns[0]},
  228. ForeignKeys: []*schema.ForeignKey{
  229. {
  230. Symbol: "sop_node_sop_stage_stage_nodes",
  231. Columns: []*schema.Column{SopNodeColumns[11]},
  232. RefColumns: []*schema.Column{SopStageColumns[0]},
  233. OnDelete: schema.NoAction,
  234. },
  235. },
  236. Indexes: []*schema.Index{
  237. {
  238. Name: "sopnode_name",
  239. Unique: false,
  240. Columns: []*schema.Column{SopNodeColumns[6]},
  241. },
  242. },
  243. }
  244. // SopStageColumns holds the columns for the "sop_stage" table.
  245. SopStageColumns = []*schema.Column{
  246. {Name: "id", Type: field.TypeUint64, Increment: true},
  247. {Name: "created_at", Type: field.TypeTime, Comment: "Create Time | 创建日期"},
  248. {Name: "updated_at", Type: field.TypeTime, Comment: "Update Time | 修改日期"},
  249. {Name: "status", Type: field.TypeUint8, Nullable: true, Comment: "Status 1: normal 2: ban | 状态 1 正常 2 禁用", Default: 1},
  250. {Name: "deleted_at", Type: field.TypeTime, Nullable: true, Comment: "Delete Time | 删除日期"},
  251. {Name: "name", Type: field.TypeString, Comment: "阶段名称", Default: ""},
  252. {Name: "condition_type", Type: field.TypeInt, Comment: "客群筛选条件类型 1 按标签筛选 2 按客户基本信息筛选", Default: 1},
  253. {Name: "condition_operator", Type: field.TypeInt, Comment: "筛选条件关系 1 满足所有条件(and) 2 满足任意条件(or)", Default: 1},
  254. {Name: "condition_list", Type: field.TypeJSON, Comment: "筛选条件列表"},
  255. {Name: "action_message", Type: field.TypeJSON, Nullable: true, Comment: "命中后发送的消息内容"},
  256. {Name: "action_label", Type: field.TypeJSON, Nullable: true, Comment: "命中后需要打的标签"},
  257. {Name: "index_sort", Type: field.TypeInt, Nullable: true, Comment: "阶段顺序", Default: 1},
  258. {Name: "task_id", Type: field.TypeUint64, Comment: "SOP 任务 ID"},
  259. }
  260. // SopStageTable holds the schema information for the "sop_stage" table.
  261. SopStageTable = &schema.Table{
  262. Name: "sop_stage",
  263. Columns: SopStageColumns,
  264. PrimaryKey: []*schema.Column{SopStageColumns[0]},
  265. ForeignKeys: []*schema.ForeignKey{
  266. {
  267. Symbol: "sop_stage_sop_task_task_stages",
  268. Columns: []*schema.Column{SopStageColumns[12]},
  269. RefColumns: []*schema.Column{SopTaskColumns[0]},
  270. OnDelete: schema.NoAction,
  271. },
  272. },
  273. Indexes: []*schema.Index{
  274. {
  275. Name: "sopstage_name",
  276. Unique: false,
  277. Columns: []*schema.Column{SopStageColumns[5]},
  278. },
  279. },
  280. }
  281. // SopTaskColumns holds the columns for the "sop_task" table.
  282. SopTaskColumns = []*schema.Column{
  283. {Name: "id", Type: field.TypeUint64, Increment: true},
  284. {Name: "created_at", Type: field.TypeTime, Comment: "Create Time | 创建日期"},
  285. {Name: "updated_at", Type: field.TypeTime, Comment: "Update Time | 修改日期"},
  286. {Name: "status", Type: field.TypeUint8, Nullable: true, Comment: "Status 1: normal 2: ban | 状态 1 正常 2 禁用", Default: 1},
  287. {Name: "deleted_at", Type: field.TypeTime, Nullable: true, Comment: "Delete Time | 删除日期"},
  288. {Name: "name", Type: field.TypeString, Comment: "SOP 任务名称"},
  289. {Name: "bot_wxid_list", Type: field.TypeJSON, Nullable: true, Comment: "机器人微信 id 列表"},
  290. {Name: "type", Type: field.TypeInt, Comment: "标签类型:1好友,2群组,3企业微信联系人", Default: 1},
  291. {Name: "plan_start_time", Type: field.TypeTime, Nullable: true, Comment: "任务计划开始时间"},
  292. {Name: "plan_end_time", Type: field.TypeTime, Nullable: true, Comment: "任务计划结束时间"},
  293. {Name: "creator_id", Type: field.TypeString, Nullable: true, Comment: "创建者 id"},
  294. }
  295. // SopTaskTable holds the schema information for the "sop_task" table.
  296. SopTaskTable = &schema.Table{
  297. Name: "sop_task",
  298. Columns: SopTaskColumns,
  299. PrimaryKey: []*schema.Column{SopTaskColumns[0]},
  300. Indexes: []*schema.Index{
  301. {
  302. Name: "soptask_name",
  303. Unique: false,
  304. Columns: []*schema.Column{SopTaskColumns[5]},
  305. },
  306. },
  307. }
  308. // WxColumns holds the columns for the "wx" table.
  309. WxColumns = []*schema.Column{
  310. {Name: "id", Type: field.TypeUint64, Increment: true},
  311. {Name: "created_at", Type: field.TypeTime, Comment: "Create Time | 创建日期"},
  312. {Name: "updated_at", Type: field.TypeTime, Comment: "Update Time | 修改日期"},
  313. {Name: "status", Type: field.TypeUint8, Nullable: true, Comment: "Status 1: normal 2: ban | 状态 1 正常 2 禁用", Default: 1},
  314. {Name: "deleted_at", Type: field.TypeTime, Nullable: true, Comment: "Delete Time | 删除日期"},
  315. {Name: "port", Type: field.TypeString, Comment: "端口号", Default: ""},
  316. {Name: "process_id", Type: field.TypeString, Comment: "进程号", Default: ""},
  317. {Name: "callback", Type: field.TypeString, Comment: "回调地址", Default: ""},
  318. {Name: "wxid", Type: field.TypeString, Comment: "微信id", Default: ""},
  319. {Name: "account", Type: field.TypeString, Comment: "微信账号", Default: ""},
  320. {Name: "nickname", Type: field.TypeString, Comment: "微信昵称", Default: ""},
  321. {Name: "tel", Type: field.TypeString, Comment: "手机号", Default: ""},
  322. {Name: "head_big", Type: field.TypeString, Comment: "微信头像", Default: ""},
  323. {Name: "server_id", Type: field.TypeUint64, Nullable: true, Comment: "服务器id", Default: 0},
  324. }
  325. // WxTable holds the schema information for the "wx" table.
  326. WxTable = &schema.Table{
  327. Name: "wx",
  328. Columns: WxColumns,
  329. PrimaryKey: []*schema.Column{WxColumns[0]},
  330. ForeignKeys: []*schema.ForeignKey{
  331. {
  332. Symbol: "wx_server_wxs",
  333. Columns: []*schema.Column{WxColumns[13]},
  334. RefColumns: []*schema.Column{ServerColumns[0]},
  335. OnDelete: schema.SetNull,
  336. },
  337. },
  338. Indexes: []*schema.Index{
  339. {
  340. Name: "wx_server_id_port",
  341. Unique: true,
  342. Columns: []*schema.Column{WxColumns[13], WxColumns[5]},
  343. },
  344. {
  345. Name: "wx_wxid",
  346. Unique: true,
  347. Columns: []*schema.Column{WxColumns[8]},
  348. },
  349. {
  350. Name: "wx_account",
  351. Unique: false,
  352. Columns: []*schema.Column{WxColumns[9]},
  353. },
  354. {
  355. Name: "wx_nickname",
  356. Unique: false,
  357. Columns: []*schema.Column{WxColumns[10]},
  358. },
  359. {
  360. Name: "wx_tel",
  361. Unique: false,
  362. Columns: []*schema.Column{WxColumns[11]},
  363. },
  364. },
  365. }
  366. // Tables holds all the tables in the schema.
  367. Tables = []*schema.Table{
  368. ContactTable,
  369. LabelTable,
  370. LabelRelationshipTable,
  371. MessageTable,
  372. MessageRecordsTable,
  373. ServerTable,
  374. SopNodeTable,
  375. SopStageTable,
  376. SopTaskTable,
  377. WxTable,
  378. }
  379. )
  380. func init() {
  381. ContactTable.Annotation = &entsql.Annotation{
  382. Table: "contact",
  383. }
  384. LabelTable.Annotation = &entsql.Annotation{
  385. Table: "label",
  386. }
  387. LabelRelationshipTable.ForeignKeys[0].RefTable = ContactTable
  388. LabelRelationshipTable.ForeignKeys[1].RefTable = LabelTable
  389. LabelRelationshipTable.Annotation = &entsql.Annotation{
  390. Table: "label_relationship",
  391. }
  392. MessageTable.Annotation = &entsql.Annotation{
  393. Table: "message",
  394. }
  395. MessageRecordsTable.Annotation = &entsql.Annotation{
  396. Table: "message_records",
  397. }
  398. ServerTable.Annotation = &entsql.Annotation{
  399. Table: "server",
  400. }
  401. SopNodeTable.ForeignKeys[0].RefTable = SopStageTable
  402. SopNodeTable.Annotation = &entsql.Annotation{
  403. Table: "sop_node",
  404. }
  405. SopStageTable.ForeignKeys[0].RefTable = SopTaskTable
  406. SopStageTable.Annotation = &entsql.Annotation{
  407. Table: "sop_stage",
  408. }
  409. SopTaskTable.Annotation = &entsql.Annotation{
  410. Table: "sop_task",
  411. }
  412. WxTable.ForeignKeys[0].RefTable = ServerTable
  413. WxTable.Annotation = &entsql.Annotation{
  414. Table: "wx",
  415. }
  416. }