Simple email application for Android. Original source code: https://framagit.org/dystopia-project/simple-email
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

904 lines
26 KiB

  1. {
  2. "formatVersion": 1,
  3. "database": {
  4. "version": 9,
  5. "identityHash": "67fade7db3a87ec2ef27dcec483c456f",
  6. "entities": [
  7. {
  8. "tableName": "identity",
  9. "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `name` TEXT NOT NULL, `email` TEXT NOT NULL, `replyto` TEXT, `account` INTEGER NOT NULL, `host` TEXT NOT NULL, `port` INTEGER NOT NULL, `starttls` INTEGER NOT NULL, `user` TEXT NOT NULL, `password` TEXT NOT NULL, `auth_type` INTEGER NOT NULL, `primary` INTEGER NOT NULL, `synchronize` INTEGER NOT NULL, `store_sent` INTEGER NOT NULL, `state` TEXT, `error` TEXT, FOREIGN KEY(`account`) REFERENCES `account`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
  10. "fields": [
  11. {
  12. "fieldPath": "id",
  13. "columnName": "id",
  14. "affinity": "INTEGER",
  15. "notNull": false
  16. },
  17. {
  18. "fieldPath": "name",
  19. "columnName": "name",
  20. "affinity": "TEXT",
  21. "notNull": true
  22. },
  23. {
  24. "fieldPath": "email",
  25. "columnName": "email",
  26. "affinity": "TEXT",
  27. "notNull": true
  28. },
  29. {
  30. "fieldPath": "replyto",
  31. "columnName": "replyto",
  32. "affinity": "TEXT",
  33. "notNull": false
  34. },
  35. {
  36. "fieldPath": "account",
  37. "columnName": "account",
  38. "affinity": "INTEGER",
  39. "notNull": true
  40. },
  41. {
  42. "fieldPath": "host",
  43. "columnName": "host",
  44. "affinity": "TEXT",
  45. "notNull": true
  46. },
  47. {
  48. "fieldPath": "port",
  49. "columnName": "port",
  50. "affinity": "INTEGER",
  51. "notNull": true
  52. },
  53. {
  54. "fieldPath": "starttls",
  55. "columnName": "starttls",
  56. "affinity": "INTEGER",
  57. "notNull": true
  58. },
  59. {
  60. "fieldPath": "user",
  61. "columnName": "user",
  62. "affinity": "TEXT",
  63. "notNull": true
  64. },
  65. {
  66. "fieldPath": "password",
  67. "columnName": "password",
  68. "affinity": "TEXT",
  69. "notNull": true
  70. },
  71. {
  72. "fieldPath": "auth_type",
  73. "columnName": "auth_type",
  74. "affinity": "INTEGER",
  75. "notNull": true
  76. },
  77. {
  78. "fieldPath": "primary",
  79. "columnName": "primary",
  80. "affinity": "INTEGER",
  81. "notNull": true
  82. },
  83. {
  84. "fieldPath": "synchronize",
  85. "columnName": "synchronize",
  86. "affinity": "INTEGER",
  87. "notNull": true
  88. },
  89. {
  90. "fieldPath": "store_sent",
  91. "columnName": "store_sent",
  92. "affinity": "INTEGER",
  93. "notNull": true
  94. },
  95. {
  96. "fieldPath": "state",
  97. "columnName": "state",
  98. "affinity": "TEXT",
  99. "notNull": false
  100. },
  101. {
  102. "fieldPath": "error",
  103. "columnName": "error",
  104. "affinity": "TEXT",
  105. "notNull": false
  106. }
  107. ],
  108. "primaryKey": {
  109. "columnNames": [
  110. "id"
  111. ],
  112. "autoGenerate": true
  113. },
  114. "indices": [
  115. {
  116. "name": "index_identity_account",
  117. "unique": false,
  118. "columnNames": [
  119. "account"
  120. ],
  121. "createSql": "CREATE INDEX `index_identity_account` ON `${TABLE_NAME}` (`account`)"
  122. }
  123. ],
  124. "foreignKeys": [
  125. {
  126. "table": "account",
  127. "onDelete": "CASCADE",
  128. "onUpdate": "NO ACTION",
  129. "columns": [
  130. "account"
  131. ],
  132. "referencedColumns": [
  133. "id"
  134. ]
  135. }
  136. ]
  137. },
  138. {
  139. "tableName": "account",
  140. "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `name` TEXT, `host` TEXT NOT NULL, `port` INTEGER NOT NULL, `user` TEXT NOT NULL, `password` TEXT NOT NULL, `auth_type` INTEGER NOT NULL, `primary` INTEGER NOT NULL, `synchronize` INTEGER NOT NULL, `store_sent` INTEGER NOT NULL, `poll_interval` INTEGER NOT NULL, `seen_until` INTEGER, `state` TEXT, `error` TEXT)",
  141. "fields": [
  142. {
  143. "fieldPath": "id",
  144. "columnName": "id",
  145. "affinity": "INTEGER",
  146. "notNull": false
  147. },
  148. {
  149. "fieldPath": "name",
  150. "columnName": "name",
  151. "affinity": "TEXT",
  152. "notNull": false
  153. },
  154. {
  155. "fieldPath": "host",
  156. "columnName": "host",
  157. "affinity": "TEXT",
  158. "notNull": true
  159. },
  160. {
  161. "fieldPath": "port",
  162. "columnName": "port",
  163. "affinity": "INTEGER",
  164. "notNull": true
  165. },
  166. {
  167. "fieldPath": "user",
  168. "columnName": "user",
  169. "affinity": "TEXT",
  170. "notNull": true
  171. },
  172. {
  173. "fieldPath": "password",
  174. "columnName": "password",
  175. "affinity": "TEXT",
  176. "notNull": true
  177. },
  178. {
  179. "fieldPath": "auth_type",
  180. "columnName": "auth_type",
  181. "affinity": "INTEGER",
  182. "notNull": true
  183. },
  184. {
  185. "fieldPath": "primary",
  186. "columnName": "primary",
  187. "affinity": "INTEGER",
  188. "notNull": true
  189. },
  190. {
  191. "fieldPath": "synchronize",
  192. "columnName": "synchronize",
  193. "affinity": "INTEGER",
  194. "notNull": true
  195. },
  196. {
  197. "fieldPath": "store_sent",
  198. "columnName": "store_sent",
  199. "affinity": "INTEGER",
  200. "notNull": true
  201. },
  202. {
  203. "fieldPath": "poll_interval",
  204. "columnName": "poll_interval",
  205. "affinity": "INTEGER",
  206. "notNull": true
  207. },
  208. {
  209. "fieldPath": "seen_until",
  210. "columnName": "seen_until",
  211. "affinity": "INTEGER",
  212. "notNull": false
  213. },
  214. {
  215. "fieldPath": "state",
  216. "columnName": "state",
  217. "affinity": "TEXT",
  218. "notNull": false
  219. },
  220. {
  221. "fieldPath": "error",
  222. "columnName": "error",
  223. "affinity": "TEXT",
  224. "notNull": false
  225. }
  226. ],
  227. "primaryKey": {
  228. "columnNames": [
  229. "id"
  230. ],
  231. "autoGenerate": true
  232. },
  233. "indices": [],
  234. "foreignKeys": []
  235. },
  236. {
  237. "tableName": "folder",
  238. "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `account` INTEGER, `name` TEXT NOT NULL, `type` TEXT NOT NULL, `synchronize` INTEGER NOT NULL, `after` INTEGER NOT NULL, `state` TEXT, `error` TEXT, FOREIGN KEY(`account`) REFERENCES `account`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
  239. "fields": [
  240. {
  241. "fieldPath": "id",
  242. "columnName": "id",
  243. "affinity": "INTEGER",
  244. "notNull": false
  245. },
  246. {
  247. "fieldPath": "account",
  248. "columnName": "account",
  249. "affinity": "INTEGER",
  250. "notNull": false
  251. },
  252. {
  253. "fieldPath": "name",
  254. "columnName": "name",
  255. "affinity": "TEXT",
  256. "notNull": true
  257. },
  258. {
  259. "fieldPath": "type",
  260. "columnName": "type",
  261. "affinity": "TEXT",
  262. "notNull": true
  263. },
  264. {
  265. "fieldPath": "synchronize",
  266. "columnName": "synchronize",
  267. "affinity": "INTEGER",
  268. "notNull": true
  269. },
  270. {
  271. "fieldPath": "after",
  272. "columnName": "after",
  273. "affinity": "INTEGER",
  274. "notNull": true
  275. },
  276. {
  277. "fieldPath": "state",
  278. "columnName": "state",
  279. "affinity": "TEXT",
  280. "notNull": false
  281. },
  282. {
  283. "fieldPath": "error",
  284. "columnName": "error",
  285. "affinity": "TEXT",
  286. "notNull": false
  287. }
  288. ],
  289. "primaryKey": {
  290. "columnNames": [
  291. "id"
  292. ],
  293. "autoGenerate": true
  294. },
  295. "indices": [
  296. {
  297. "name": "index_folder_account_name",
  298. "unique": true,
  299. "columnNames": [
  300. "account",
  301. "name"
  302. ],
  303. "createSql": "CREATE UNIQUE INDEX `index_folder_account_name` ON `${TABLE_NAME}` (`account`, `name`)"
  304. },
  305. {
  306. "name": "index_folder_account",
  307. "unique": false,
  308. "columnNames": [
  309. "account"
  310. ],
  311. "createSql": "CREATE INDEX `index_folder_account` ON `${TABLE_NAME}` (`account`)"
  312. },
  313. {
  314. "name": "index_folder_name",
  315. "unique": false,
  316. "columnNames": [
  317. "name"
  318. ],
  319. "createSql": "CREATE INDEX `index_folder_name` ON `${TABLE_NAME}` (`name`)"
  320. },
  321. {
  322. "name": "index_folder_type",
  323. "unique": false,
  324. "columnNames": [
  325. "type"
  326. ],
  327. "createSql": "CREATE INDEX `index_folder_type` ON `${TABLE_NAME}` (`type`)"
  328. }
  329. ],
  330. "foreignKeys": [
  331. {
  332. "table": "account",
  333. "onDelete": "CASCADE",
  334. "onUpdate": "NO ACTION",
  335. "columns": [
  336. "account"
  337. ],
  338. "referencedColumns": [
  339. "id"
  340. ]
  341. }
  342. ]
  343. },
  344. {
  345. "tableName": "message",
  346. "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `account` INTEGER, `folder` INTEGER NOT NULL, `identity` INTEGER, `replying` INTEGER, `uid` INTEGER, `msgid` TEXT, `references` TEXT, `inreplyto` TEXT, `thread` TEXT, `from` TEXT, `to` TEXT, `cc` TEXT, `bcc` TEXT, `reply` TEXT, `headers` TEXT, `subject` TEXT, `sent` INTEGER, `received` INTEGER NOT NULL, `stored` INTEGER NOT NULL, `seen` INTEGER NOT NULL, `ui_seen` INTEGER NOT NULL, `ui_hide` INTEGER NOT NULL, `ui_found` INTEGER NOT NULL, `error` TEXT, FOREIGN KEY(`account`) REFERENCES `account`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`folder`) REFERENCES `folder`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`identity`) REFERENCES `identity`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`replying`) REFERENCES `message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
  347. "fields": [
  348. {
  349. "fieldPath": "id",
  350. "columnName": "id",
  351. "affinity": "INTEGER",
  352. "notNull": false
  353. },
  354. {
  355. "fieldPath": "account",
  356. "columnName": "account",
  357. "affinity": "INTEGER",
  358. "notNull": false
  359. },
  360. {
  361. "fieldPath": "folder",
  362. "columnName": "folder",
  363. "affinity": "INTEGER",
  364. "notNull": true
  365. },
  366. {
  367. "fieldPath": "identity",
  368. "columnName": "identity",
  369. "affinity": "INTEGER",
  370. "notNull": false
  371. },
  372. {
  373. "fieldPath": "replying",
  374. "columnName": "replying",
  375. "affinity": "INTEGER",
  376. "notNull": false
  377. },
  378. {
  379. "fieldPath": "uid",
  380. "columnName": "uid",
  381. "affinity": "INTEGER",
  382. "notNull": false
  383. },
  384. {
  385. "fieldPath": "msgid",
  386. "columnName": "msgid",
  387. "affinity": "TEXT",
  388. "notNull": false
  389. },
  390. {
  391. "fieldPath": "references",
  392. "columnName": "references",
  393. "affinity": "TEXT",
  394. "notNull": false
  395. },
  396. {
  397. "fieldPath": "inreplyto",
  398. "columnName": "inreplyto",
  399. "affinity": "TEXT",
  400. "notNull": false
  401. },
  402. {
  403. "fieldPath": "thread",
  404. "columnName": "thread",
  405. "affinity": "TEXT",
  406. "notNull": false
  407. },
  408. {
  409. "fieldPath": "from",
  410. "columnName": "from",
  411. "affinity": "TEXT",
  412. "notNull": false
  413. },
  414. {
  415. "fieldPath": "to",
  416. "columnName": "to",
  417. "affinity": "TEXT",
  418. "notNull": false
  419. },
  420. {
  421. "fieldPath": "cc",
  422. "columnName": "cc",
  423. "affinity": "TEXT",
  424. "notNull": false
  425. },
  426. {
  427. "fieldPath": "bcc",
  428. "columnName": "bcc",
  429. "affinity": "TEXT",
  430. "notNull": false
  431. },
  432. {
  433. "fieldPath": "reply",
  434. "columnName": "reply",
  435. "affinity": "TEXT",
  436. "notNull": false
  437. },
  438. {
  439. "fieldPath": "headers",
  440. "columnName": "headers",
  441. "affinity": "TEXT",
  442. "notNull": false
  443. },
  444. {
  445. "fieldPath": "subject",
  446. "columnName": "subject",
  447. "affinity": "TEXT",
  448. "notNull": false
  449. },
  450. {
  451. "fieldPath": "sent",
  452. "columnName": "sent",
  453. "affinity": "INTEGER",
  454. "notNull": false
  455. },
  456. {
  457. "fieldPath": "received",
  458. "columnName": "received",
  459. "affinity": "INTEGER",
  460. "notNull": true
  461. },
  462. {
  463. "fieldPath": "stored",
  464. "columnName": "stored",
  465. "affinity": "INTEGER",
  466. "notNull": true
  467. },
  468. {
  469. "fieldPath": "seen",
  470. "columnName": "seen",
  471. "affinity": "INTEGER",
  472. "notNull": true
  473. },
  474. {
  475. "fieldPath": "ui_seen",
  476. "columnName": "ui_seen",
  477. "affinity": "INTEGER",
  478. "notNull": true
  479. },
  480. {
  481. "fieldPath": "ui_hide",
  482. "columnName": "ui_hide",
  483. "affinity": "INTEGER",
  484. "notNull": true
  485. },
  486. {
  487. "fieldPath": "ui_found",
  488. "columnName": "ui_found",
  489. "affinity": "INTEGER",
  490. "notNull": true
  491. },
  492. {
  493. "fieldPath": "error",
  494. "columnName": "error",
  495. "affinity": "TEXT",
  496. "notNull": false
  497. }
  498. ],
  499. "primaryKey": {
  500. "columnNames": [
  501. "id"
  502. ],
  503. "autoGenerate": true
  504. },
  505. "indices": [
  506. {
  507. "name": "index_message_account",
  508. "unique": false,
  509. "columnNames": [
  510. "account"
  511. ],
  512. "createSql": "CREATE INDEX `index_message_account` ON `${TABLE_NAME}` (`account`)"
  513. },
  514. {
  515. "name": "index_message_folder",
  516. "unique": false,
  517. "columnNames": [
  518. "folder"
  519. ],
  520. "createSql": "CREATE INDEX `index_message_folder` ON `${TABLE_NAME}` (`folder`)"
  521. },
  522. {
  523. "name": "index_message_identity",
  524. "unique": false,
  525. "columnNames": [
  526. "identity"
  527. ],
  528. "createSql": "CREATE INDEX `index_message_identity` ON `${TABLE_NAME}` (`identity`)"
  529. },
  530. {
  531. "name": "index_message_replying",
  532. "unique": false,
  533. "columnNames": [
  534. "replying"
  535. ],
  536. "createSql": "CREATE INDEX `index_message_replying` ON `${TABLE_NAME}` (`replying`)"
  537. },
  538. {
  539. "name": "index_message_folder_uid",
  540. "unique": true,
  541. "columnNames": [
  542. "folder",
  543. "uid"
  544. ],
  545. "createSql": "CREATE UNIQUE INDEX `index_message_folder_uid` ON `${TABLE_NAME}` (`folder`, `uid`)"
  546. },
  547. {
  548. "name": "index_message_msgid_folder",
  549. "unique": true,
  550. "columnNames": [
  551. "msgid",
  552. "folder"
  553. ],
  554. "createSql": "CREATE UNIQUE INDEX `index_message_msgid_folder` ON `${TABLE_NAME}` (`msgid`, `folder`)"
  555. },
  556. {
  557. "name": "index_message_thread",
  558. "unique": false,
  559. "columnNames": [
  560. "thread"
  561. ],
  562. "createSql": "CREATE INDEX `index_message_thread` ON `${TABLE_NAME}` (`thread`)"
  563. },
  564. {
  565. "name": "index_message_received",
  566. "unique": false,
  567. "columnNames": [
  568. "received"
  569. ],
  570. "createSql": "CREATE INDEX `index_message_received` ON `${TABLE_NAME}` (`received`)"
  571. },
  572. {
  573. "name": "index_message_ui_seen",
  574. "unique": false,
  575. "columnNames": [
  576. "ui_seen"
  577. ],
  578. "createSql": "CREATE INDEX `index_message_ui_seen` ON `${TABLE_NAME}` (`ui_seen`)"
  579. },
  580. {
  581. "name": "index_message_ui_hide",
  582. "unique": false,
  583. "columnNames": [
  584. "ui_hide"
  585. ],
  586. "createSql": "CREATE INDEX `index_message_ui_hide` ON `${TABLE_NAME}` (`ui_hide`)"
  587. },
  588. {
  589. "name": "index_message_ui_found",
  590. "unique": false,
  591. "columnNames": [
  592. "ui_found"
  593. ],
  594. "createSql": "CREATE INDEX `index_message_ui_found` ON `${TABLE_NAME}` (`ui_found`)"
  595. }
  596. ],
  597. "foreignKeys": [
  598. {
  599. "table": "account",
  600. "onDelete": "CASCADE",
  601. "onUpdate": "NO ACTION",
  602. "columns": [
  603. "account"
  604. ],
  605. "referencedColumns": [
  606. "id"
  607. ]
  608. },
  609. {
  610. "table": "folder",
  611. "onDelete": "CASCADE",
  612. "onUpdate": "NO ACTION",
  613. "columns": [
  614. "folder"
  615. ],
  616. "referencedColumns": [
  617. "id"
  618. ]
  619. },
  620. {
  621. "table": "identity",
  622. "onDelete": "CASCADE",
  623. "onUpdate": "NO ACTION",
  624. "columns": [
  625. "identity"
  626. ],
  627. "referencedColumns": [
  628. "id"
  629. ]
  630. },
  631. {
  632. "table": "message",
  633. "onDelete": "CASCADE",
  634. "onUpdate": "NO ACTION",
  635. "columns": [
  636. "replying"
  637. ],
  638. "referencedColumns": [
  639. "id"
  640. ]
  641. }
  642. ]
  643. },
  644. {
  645. "tableName": "attachment",
  646. "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `message` INTEGER NOT NULL, `sequence` INTEGER NOT NULL, `name` TEXT, `type` TEXT NOT NULL, `size` INTEGER, `progress` INTEGER, `available` INTEGER NOT NULL, FOREIGN KEY(`message`) REFERENCES `message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
  647. "fields": [
  648. {
  649. "fieldPath": "id",
  650. "columnName": "id",
  651. "affinity": "INTEGER",
  652. "notNull": false
  653. },
  654. {
  655. "fieldPath": "message",
  656. "columnName": "message",
  657. "affinity": "INTEGER",
  658. "notNull": true
  659. },
  660. {
  661. "fieldPath": "sequence",
  662. "columnName": "sequence",
  663. "affinity": "INTEGER",
  664. "notNull": true
  665. },
  666. {
  667. "fieldPath": "name",
  668. "columnName": "name",
  669. "affinity": "TEXT",
  670. "notNull": false
  671. },
  672. {
  673. "fieldPath": "type",
  674. "columnName": "type",
  675. "affinity": "TEXT",
  676. "notNull": true
  677. },
  678. {
  679. "fieldPath": "size",
  680. "columnName": "size",
  681. "affinity": "INTEGER",
  682. "notNull": false
  683. },
  684. {
  685. "fieldPath": "progress",
  686. "columnName": "progress",
  687. "affinity": "INTEGER",
  688. "notNull": false
  689. },
  690. {
  691. "fieldPath": "available",
  692. "columnName": "available",
  693. "affinity": "INTEGER",
  694. "notNull": true
  695. }
  696. ],
  697. "primaryKey": {
  698. "columnNames": [
  699. "id"
  700. ],
  701. "autoGenerate": true
  702. },
  703. "indices": [
  704. {
  705. "name": "index_attachment_message",
  706. "unique": false,
  707. "columnNames": [
  708. "message"
  709. ],
  710. "createSql": "CREATE INDEX `index_attachment_message` ON `${TABLE_NAME}` (`message`)"
  711. },
  712. {
  713. "name": "index_attachment_message_sequence",
  714. "unique": true,
  715. "columnNames": [
  716. "message",
  717. "sequence"
  718. ],
  719. "createSql": "CREATE UNIQUE INDEX `index_attachment_message_sequence` ON `${TABLE_NAME}` (`message`, `sequence`)"
  720. }
  721. ],
  722. "foreignKeys": [
  723. {
  724. "table": "message",
  725. "onDelete": "CASCADE",
  726. "onUpdate": "NO ACTION",
  727. "columns": [
  728. "message"
  729. ],
  730. "referencedColumns": [
  731. "id"
  732. ]
  733. }
  734. ]
  735. },
  736. {
  737. "tableName": "operation",
  738. "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `folder` INTEGER NOT NULL, `message` INTEGER NOT NULL, `name` TEXT NOT NULL, `args` TEXT NOT NULL, `created` INTEGER NOT NULL, FOREIGN KEY(`folder`) REFERENCES `folder`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`message`) REFERENCES `message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
  739. "fields": [
  740. {
  741. "fieldPath": "id",
  742. "columnName": "id",
  743. "affinity": "INTEGER",
  744. "notNull": false
  745. },
  746. {
  747. "fieldPath": "folder",
  748. "columnName": "folder",
  749. "affinity": "INTEGER",
  750. "notNull": true
  751. },
  752. {
  753. "fieldPath": "message",
  754. "columnName": "message",
  755. "affinity": "INTEGER",
  756. "notNull": true
  757. },
  758. {
  759. "fieldPath": "name",
  760. "columnName": "name",
  761. "affinity": "TEXT",
  762. "notNull": true
  763. },
  764. {
  765. "fieldPath": "args",
  766. "columnName": "args",
  767. "affinity": "TEXT",
  768. "notNull": true
  769. },
  770. {
  771. "fieldPath": "created",
  772. "columnName": "created",
  773. "affinity": "INTEGER",
  774. "notNull": true
  775. }
  776. ],
  777. "primaryKey": {
  778. "columnNames": [
  779. "id"
  780. ],
  781. "autoGenerate": true
  782. },
  783. "indices": [
  784. {
  785. "name": "index_operation_folder",
  786. "unique": false,
  787. "columnNames": [
  788. "folder"
  789. ],
  790. "createSql": "CREATE INDEX `index_operation_folder` ON `${TABLE_NAME}` (`folder`)"
  791. },
  792. {
  793. "name": "index_operation_message",
  794. "unique": false,
  795. "columnNames": [
  796. "message"
  797. ],
  798. "createSql": "CREATE INDEX `index_operation_message` ON `${TABLE_NAME}` (`message`)"
  799. }
  800. ],
  801. "foreignKeys": [
  802. {
  803. "table": "folder",
  804. "onDelete": "CASCADE",
  805. "onUpdate": "NO ACTION",
  806. "columns": [
  807. "folder"
  808. ],
  809. "referencedColumns": [
  810. "id"
  811. ]
  812. },
  813. {
  814. "table": "message",
  815. "onDelete": "CASCADE",
  816. "onUpdate": "NO ACTION",
  817. "columns": [
  818. "message"
  819. ],
  820. "referencedColumns": [
  821. "id"
  822. ]
  823. }
  824. ]
  825. },
  826. {
  827. "tableName": "answer",
  828. "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `name` TEXT NOT NULL, `text` TEXT NOT NULL)",
  829. "fields": [
  830. {
  831. "fieldPath": "id",
  832. "columnName": "id",
  833. "affinity": "INTEGER",
  834. "notNull": false
  835. },
  836. {
  837. "fieldPath": "name",
  838. "columnName": "name",
  839. "affinity": "TEXT",
  840. "notNull": true
  841. },
  842. {
  843. "fieldPath": "text",
  844. "columnName": "text",
  845. "affinity": "TEXT",
  846. "notNull": true
  847. }
  848. ],
  849. "primaryKey": {
  850. "columnNames": [
  851. "id"
  852. ],
  853. "autoGenerate": true
  854. },
  855. "indices": [],
  856. "foreignKeys": []
  857. },
  858. {
  859. "tableName": "log",
  860. "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `time` INTEGER NOT NULL, `data` TEXT NOT NULL)",
  861. "fields": [
  862. {
  863. "fieldPath": "id",
  864. "columnName": "id",
  865. "affinity": "INTEGER",
  866. "notNull": false
  867. },
  868. {
  869. "fieldPath": "time",
  870. "columnName": "time",
  871. "affinity": "INTEGER",
  872. "notNull": true
  873. },
  874. {
  875. "fieldPath": "data",
  876. "columnName": "data",
  877. "affinity": "TEXT",
  878. "notNull": true
  879. }
  880. ],
  881. "primaryKey": {
  882. "columnNames": [
  883. "id"
  884. ],
  885. "autoGenerate": true
  886. },
  887. "indices": [
  888. {
  889. "name": "index_log_time",
  890. "unique": false,
  891. "columnNames": [
  892. "time"
  893. ],
  894. "createSql": "CREATE INDEX `index_log_time` ON `${TABLE_NAME}` (`time`)"
  895. }
  896. ],
  897. "foreignKeys": []
  898. }
  899. ],
  900. "setupQueries": [
  901. "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
  902. "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, \"67fade7db3a87ec2ef27dcec483c456f\")"
  903. ]
  904. }
  905. }