[native] Create table and queries for DMOperations
Summary:
Create a table where the operations are stored and allow quick query by the operation type.
https://linear.app/comm/issue/ENG-10333/create-sqlite-table-and-queries
Test Plan:
Tested the whole stack on both native and web:
- Run the app on Redux version 86 with a modification to processDMOperation making all the INBOUND messages unsupported
- On one platform created a thread and sent a text message. These were visible on the sender, and invisible on the recipient
- Closed the recipient and added a migration that unshimms the thread creation operations, e.g.
unshimDMOperations( state, dmOperationTypes.CREATE_THREAD, handleReduxMigrationFailure, ): MigrationFunction<WebNavInfo, AppState>),
- Run the recipient and noticed the thread appearing
- Added another migration, this time unshimming text messages
- Run the recipient and noticed messages appearing
Additionally, tested the migration on native by removing the table from the code that creates the DB, bumping the version to make sure that the migration is run, and adding some code in JS that queries the table.
Reviewers: kamil, bartek
Reviewed By: kamil
Subscribers: ashoat
Differential Revision: https://phab.comm.dev/D14447