56 Commits

Author SHA1 Message Date
ealmeida 83464df908 chore: remove old schema path 20.json (package rename)
Build AAB — WhatSMS Gateway / build (push) Failing after 41s
2026-04-24 18:57:07 +00:00
ealmeida bc76cfcd49 chore: remove old schema path 19.json (package rename)
Build AAB — WhatSMS Gateway / build (push) Failing after 36s
2026-04-24 18:57:03 +00:00
ealmeida 9078fe89de chore: remove old schema path 18.json (package rename)
Build AAB — WhatSMS Gateway / build (push) Failing after 42s
2026-04-24 18:56:58 +00:00
ealmeida 3eb36a9006 chore: remove old schema path 17.json (package rename)
Build AAB — WhatSMS Gateway / build (push) Failing after 23s
2026-04-24 18:56:53 +00:00
ealmeida 2a00670bbb chore: remove old schema path 16.json (package rename)
Build AAB — WhatSMS Gateway / build (push) Failing after 31s
2026-04-24 18:56:48 +00:00
ealmeida 7c5ad0a4c9 chore: remove old schema path 15.json (package rename)
Build AAB — WhatSMS Gateway / build (push) Failing after 43s
2026-04-24 18:56:43 +00:00
ealmeida 209a9a9ba1 chore: remove old schema path 14.json (package rename)
Build AAB — WhatSMS Gateway / build (push) Failing after 31s
2026-04-24 18:56:38 +00:00
ealmeida d04f04716c chore: remove old schema path 13.json (package rename)
Build AAB — WhatSMS Gateway / build (push) Failing after 37s
2026-04-24 18:56:33 +00:00
ealmeida 143a67e47b chore: remove old schema path 12.json (package rename)
Build AAB — WhatSMS Gateway / build (push) Failing after 39s
2026-04-24 18:56:29 +00:00
ealmeida 125bd31264 chore: remove old schema path 11.json (package rename)
Build AAB — WhatSMS Gateway / build (push) Failing after 32s
2026-04-24 18:55:50 +00:00
ealmeida 116c4c6377 chore: remove old schema path 10.json (package rename)
Build AAB — WhatSMS Gateway / build (push) Failing after 43s
2026-04-24 18:55:45 +00:00
ealmeida d5f910763f chore: remove old schema path 9.json (package rename)
Build AAB — WhatSMS Gateway / build (push) Failing after 29s
2026-04-24 18:55:40 +00:00
ealmeida f79996995e chore: remove old schema path 8.json (package rename)
Build AAB — WhatSMS Gateway / build (push) Failing after 43s
2026-04-24 18:55:34 +00:00
ealmeida 5b53b61416 chore: remove old schema path 7.json (package rename)
Build AAB — WhatSMS Gateway / build (push) Failing after 37s
2026-04-24 18:55:31 +00:00
ealmeida 2c7f515e3b chore: remove old schema path 6.json (package rename)
Build AAB — WhatSMS Gateway / build (push) Failing after 3m18s
2026-04-24 18:55:26 +00:00
ealmeida 97cfafd47e chore: remove old schema path 5.json (package rename)
Build AAB — WhatSMS Gateway / build (push) Failing after 6m8s
2026-04-24 18:55:22 +00:00
ealmeida 044f08bcd0 chore: remove old schema path 4.json (package rename)
Build AAB — WhatSMS Gateway / build (push) Failing after 7m18s
2026-04-24 18:55:18 +00:00
ealmeida d2b23833a3 chore: remove old schema path 3.json (package rename)
Build AAB — WhatSMS Gateway / build (push) Failing after 7m19s
2026-04-24 18:55:13 +00:00
ealmeida f200c2c0d0 chore: remove old schema path 2.json (package rename)
Build AAB — WhatSMS Gateway / build (push) Failing after 5m44s
2026-04-24 18:55:09 +00:00
ealmeida db740e4aaa fix(room-schema): remove old package path schemas (cleanup me.capcom.smsgateway) 1/20
Build AAB — WhatSMS Gateway / build (push) Failing after 5m13s
2026-04-24 18:53:53 +00:00
ealmeida 74ac47f497 fix(room-schema): add schema 20 at new package path pt.whatsms.gateway
Build AAB — WhatSMS Gateway / build (push) Failing after 4m50s
2026-04-24 18:53:06 +00:00
ealmeida 03d5e86006 fix(room-schema): add schema 19 at new package path pt.whatsms.gateway
Build AAB — WhatSMS Gateway / build (push) Failing after 5m3s
2026-04-24 18:47:40 +00:00
ealmeida 9e352e366e fix: add Room schema 18 to new package path pt.whatsms.gateway
Build AAB — WhatSMS Gateway / build (push) Failing after 5m15s
2026-04-24 18:43:00 +00:00
ealmeida 0e8161f2fa fix: add Room schema 17 to new package path pt.whatsms.gateway
Build AAB — WhatSMS Gateway / build (push) Failing after 5m2s
2026-04-24 18:40:26 +00:00
ealmeida a2add4112e fix(room): add schema 16 to pt.whatsms.gateway path
Build AAB — WhatSMS Gateway / build (push) Failing after 3m38s
2026-04-24 18:34:59 +00:00
ealmeida 92d07fb47f fix(room): add schema 15 to pt.whatsms.gateway path
Build AAB — WhatSMS Gateway / build (push) Failing after 3m47s
2026-04-24 18:32:53 +00:00
ealmeida 7ac4df014c fix(schemas): copiar schema v14 para path pt.whatsms.gateway
Build AAB — WhatSMS Gateway / build (push) Failing after 2m29s
2026-04-24 18:27:48 +00:00
ealmeida 91848e5fea fix(schemas): copiar schema v13 para path pt.whatsms.gateway
Build AAB — WhatSMS Gateway / build (push) Failing after 2m26s
2026-04-24 18:25:45 +00:00
ealmeida 26e8129408 chore: migrate Room schema 12 to pt.whatsms.gateway package path
Build AAB — WhatSMS Gateway / build (push) Failing after 3m44s
2026-04-24 18:20:12 +00:00
ealmeida a6ac97962e chore: migrate Room schema 11 to pt.whatsms.gateway package path
Build AAB — WhatSMS Gateway / build (push) Failing after 3m48s
2026-04-24 18:18:16 +00:00
ealmeida d385d1c39c chore: migrate Room schema to pt.whatsms.gateway package path (10.json)
Build AAB — WhatSMS Gateway / build (push) Failing after 5m52s
2026-04-24 18:14:58 +00:00
ealmeida 1d58d24006 chore: migrate Room schema to pt.whatsms.gateway package path (9.json)
Build AAB — WhatSMS Gateway / build (push) Failing after 5m52s
2026-04-24 18:13:31 +00:00
ealmeida 5c8c1b2e77 chore: migrate Room schema to pt.whatsms.gateway package path (8.json)
Build AAB — WhatSMS Gateway / build (push) Failing after 5m51s
2026-04-24 18:12:30 +00:00
ealmeida 21897c2be6 chore: migrate Room schema to pt.whatsms.gateway package path (7.json)
Build AAB — WhatSMS Gateway / build (push) Failing after 3m35s
2026-04-24 18:11:56 +00:00
ealmeida f0224be20b chore: migrate Room schema to pt.whatsms.gateway package path (6.json)
Build AAB — WhatSMS Gateway / build (push) Failing after 3m48s
2026-04-24 18:11:05 +00:00
ealmeida 9c7e37e6c7 fix: migrar schemas Room para novo package pt.whatsms.gateway (schema 5)
Build AAB — WhatSMS Gateway / build (push) Failing after 3m59s
2026-04-24 18:08:24 +00:00
ealmeida d23b64e5dd fix: migrar schemas Room para novo package pt.whatsms.gateway (schema 4)
Build AAB — WhatSMS Gateway / build (push) Failing after 4m25s
2026-04-24 18:07:43 +00:00
ealmeida daa3348ccf fix: migrar schemas Room para novo package pt.whatsms.gateway (schema 3)
Build AAB — WhatSMS Gateway / build (push) Failing after 27s
2026-04-24 18:07:08 +00:00
ealmeida 17682811ac fix: migrar schemas Room para novo package pt.whatsms.gateway (schema 2)
Build AAB — WhatSMS Gateway / build (push) Failing after 35s
2026-04-24 18:06:35 +00:00
ealmeida a67505217c fix: migrar schemas Room para novo package pt.whatsms.gateway (1-5)
Build AAB — WhatSMS Gateway / build (push) Failing after 35s
2026-04-24 18:05:49 +00:00
ealmeida 11185406d9 fix: substituir URLs sms-gate.app/capcom6 em strings.xml por whatsms.pt
Build AAB — WhatSMS Gateway / build (push) Failing after 2m46s
2026-04-24 17:36:11 +00:00
ealmeida 7737b9d6df fix: remover URLs sms-gate.app residuais de GatewaySettings
Build AAB — WhatSMS Gateway / build (push) Failing after 36s
2026-04-24 17:35:30 +00:00
ealmeida 5c5b35f9e2 refactor: renomear package me.capcom.smsgateway → pt.whatsms.gateway
Build AAB — WhatSMS Gateway / build (push) Failing after 34s
- namespace, applicationId, todos os ficheiros .kt/.xml/.gradle actualizados
- directório me/capcom/smsgateway/ → pt/whatsms/gateway/
- zero referências a capcom no código fonte
2026-04-24 18:28:08 +01:00
ealmeida 1cb31d1615 ci: substituir upload-artifact por release Gitea (fix ECONNREFUSED 127.0.1.1:443)
Build AAB — WhatSMS Gateway / build (push) Successful in 4m33s
2026-04-24 16:57:29 +00:00
ealmeida fa6f7e0a21 fix: descodificar root_preferences.xml (estava double-base64 encoded)
Build AAB — WhatSMS Gateway / build (push) Failing after 7m10s
2026-04-24 16:49:01 +00:00
ealmeida 391ba14ce8 ci: fix workflow YAML (era base64 literal) + --network host para checkout funcionar
Build AAB — WhatSMS Gateway / build (push) Failing after 1m20s
2026-04-24 16:42:37 +00:00
ealmeida 1d6084148e ci: fix checkout — add --network host to container (Gitea HTTPS not reachable from isolated Docker network) 2026-04-24 16:41:17 +00:00
ealmeida 88bc875055 ci: assembleRelease → bundleRelease (AAB obrigatório Play Store)
Build AAB — WhatSMS Gateway / build (push) Failing after 59s
2026-04-24 16:36:34 +00:00
ealmeida f780311b3e build: targetSdk + compileSdk 33 → 34 (Play Store requirement)
Build APK — WhatSMS Gateway / build (push) Failing after 1m2s
2026-04-24 16:36:29 +00:00
ealmeida 98db49ca24 ci: Gitea Actions workflow para build APK release v3.2.0
Build APK — WhatSMS Gateway / build (push) Failing after 4m5s
- Runner: mingc/android-build-box:latest (JDK 17)
- Injecta google-services.json a partir de secret
- Decode keystore.jks a partir de KEYSTORE_BASE64
- assembleRelease com signing via env vars
- Upload APK como artefacto da run
- Trigger: push feat/whatsms-branding-ptpt + workflow_dispatch
2026-04-24 16:30:53 +00:00
ealmeida 63e6936f9b build: upgrade Gradle wrapper 8.0 → 8.7 (suporte Java 21)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 01:41:57 +01:00
ealmeida a3285cc4a2 feat(android): QR pairing — ZXing scanner + ScanPairingActivity + strings PT-PT
- Adiciona dependência zxing-android-embedded:4.3.0
- Adiciona permissão CAMERA e regista ScanPairingActivity no Manifest
- Cria ScanPairingActivity: scan QR → parse JSON → POST claim-device
- Adiciona preferência "Emparelhar dispositivo" nas definições do servidor
- Adiciona handler de clique em WhatSmsServerSettingsFragment
- Strings PT-PT: scan_qr_to_pair, pairing_success/failed/cancelled/error
- Bump versionName para 3.2.0

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-23 00:55:46 +01:00
ealmeida 05efaf185c feat(android-ui): add PT-PT strings for WhatSMS Server settings panel 2026-04-22 23:05:14 +00:00
ealmeida 0f67dfd686 feat(android-ui): simplify settings to 2 panels (WhatSMS Server + Mensagens) 2026-04-22 23:01:37 +00:00
ealmeida a4a65f4214 feat(android-ui): add WhatSmsServerSettingsFragment (merged Local+Cloud) 2026-04-22 23:00:41 +00:00
ealmeida abaaedbf30 feat(android-ui): add whatsms_server_preferences.xml (simplified cloud panel) 2026-04-22 22:59:10 +00:00
257 changed files with 1218 additions and 6667 deletions
+70
View File
@@ -0,0 +1,70 @@
name: Build AAB — WhatSMS Gateway
on:
push:
branches:
- feat/whatsms-branding-ptpt
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
container:
image: mingc/android-build-box:latest
options: --network host
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Configurar JDK 17
run: |
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
echo "JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64" >> $GITHUB_ENV
echo "/usr/lib/jvm/java-17-openjdk-amd64/bin" >> $GITHUB_PATH
java -version
- name: Injectar google-services.json
run: echo '${{ secrets.GOOGLE_SERVICES_JSON }}' > app/google-services.json
- name: Decode keystore
run: echo '${{ secrets.KEYSTORE_BASE64 }}' | base64 -d > app/keystore.jks
- name: Build AAB release
env:
SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_STORE_PASSWORD }}
SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }}
SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }}
JAVA_HOME: /usr/lib/jvm/java-17-openjdk-amd64
run: |
chmod +x gradlew
./gradlew bundleRelease --no-daemon --stacktrace
- name: Publicar AAB como release Gitea
env:
GITEA_TOKEN: ${{ github.token }}
run: |
AAB=$(find app/build/outputs/bundle/release -name "*.aab" | head -1)
echo "AAB encontrado: $AAB"
# Criar release (ignora erro se tag ja existir)
RESP=$(curl -s -X POST \
-H "Authorization: token $GITEA_TOKEN" \
-H "Content-Type: application/json" \
https://git.descomplicar.pt/api/v1/repos/ealmeida/whatsms-gateway-android/releases \
-d '{"tag_name":"v3.2.0-ci","name":"WhatSMS Gateway v3.2.0 CI","body":"Build automatico Gitea Actions","draft":false,"prerelease":true}')
RELEASE_ID=$(echo "$RESP" | grep -o '"id":[0-9]*' | head -1 | cut -d: -f2)
# Se release ja existe, obter ID por tag
if [ -z "$RELEASE_ID" ] || [ "$RELEASE_ID" = "null" ]; then
RELEASE_ID=$(curl -s \
-H "Authorization: token $GITEA_TOKEN" \
https://git.descomplicar.pt/api/v1/repos/ealmeida/whatsms-gateway-android/releases/tags/v3.2.0-ci \
| grep -o '"id":[0-9]*' | head -1 | cut -d: -f2)
fi
echo "Release ID: $RELEASE_ID"
# Upload AAB como asset da release
curl -s -X POST \
-H "Authorization: token $GITEA_TOKEN" \
-H "Content-Type: application/octet-stream" \
--data-binary "@$AAB" \
"https://git.descomplicar.pt/api/v1/repos/ealmeida/whatsms-gateway-android/releases/${RELEASE_ID}/assets?name=whatsms-gateway-v3.2.0.aab"
echo "Upload concluido!"
+7 -4
View File
@@ -6,14 +6,14 @@ plugins {
}
android {
compileSdk 33
compileSdk 34
defaultConfig {
applicationId "pt.whatsms.gateway"
minSdk 21
targetSdk 33
targetSdk 34
versionCode 11
versionName "3.1.0-hardcode"
versionName "3.2.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@@ -68,7 +68,7 @@ android {
exclude 'META-INF/INDEX.LIST'
exclude 'META-INF/io.netty.versions.properties'
}
namespace 'me.capcom.smsgateway'
namespace 'pt.whatsms.gateway'
}
dependencies {
@@ -130,6 +130,9 @@ dependencies {
// Koin for Android
implementation "io.insert-koin:koin-android:$koin_version"
// QR code scanner para emparelhamento WhatSMS
implementation 'com.journeyapps:zxing-android-embedded:4.3.0'
testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.ext:junit:1.1.3")
androidTestImplementation("androidx.test.espresso:espresso-core:3.4.0")
+1 -1
View File
@@ -4,7 +4,7 @@
"type": "APK",
"kind": "Directory"
},
"applicationId": "me.capcom.smsgateway",
"applicationId": "pt.whatsms.gateway",
"variantName": "release",
"elements": [
{
@@ -1,91 +0,0 @@
{
"formatVersion": 1,
"database": {
"version": 1,
"identityHash": "67fe481b485f4d2705ab746884ad69b1",
"entities": [
{
"tableName": "Message",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `text` TEXT NOT NULL, `state` TEXT NOT NULL, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "text",
"columnName": "text",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "MessageRecipient",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `phoneNumber` TEXT NOT NULL, `state` TEXT NOT NULL, PRIMARY KEY(`messageId`, `phoneNumber`), FOREIGN KEY(`messageId`) REFERENCES `Message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "phoneNumber",
"columnName": "phoneNumber",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"messageId",
"phoneNumber"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "Message",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId"
],
"referencedColumns": [
"id"
]
}
]
}
],
"views": [],
"setupQueries": [
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '67fe481b485f4d2705ab746884ad69b1')"
]
}
}
@@ -1,268 +0,0 @@
{
"formatVersion": 1,
"database": {
"version": 10,
"identityHash": "76eadaecfb0d5b84f7038edff0d0a1cf",
"entities": [
{
"tableName": "Message",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `text` TEXT NOT NULL, `withDeliveryReport` INTEGER NOT NULL DEFAULT 1, `simNumber` INTEGER, `validUntil` TEXT, `isEncrypted` INTEGER NOT NULL DEFAULT 0, `skipPhoneValidation` INTEGER NOT NULL DEFAULT 0, `source` TEXT NOT NULL DEFAULT 'Local', `state` TEXT NOT NULL, `createdAt` INTEGER NOT NULL DEFAULT 0, `processedAt` INTEGER, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "text",
"columnName": "text",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "withDeliveryReport",
"columnName": "withDeliveryReport",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "1"
},
{
"fieldPath": "simNumber",
"columnName": "simNumber",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "validUntil",
"columnName": "validUntil",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "isEncrypted",
"columnName": "isEncrypted",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "skipPhoneValidation",
"columnName": "skipPhoneValidation",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "source",
"columnName": "source",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "'Local'"
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "createdAt",
"columnName": "createdAt",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "processedAt",
"columnName": "processedAt",
"affinity": "INTEGER",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [
{
"name": "index_Message_createdAt",
"unique": false,
"columnNames": [
"createdAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_createdAt` ON `${TABLE_NAME}` (`createdAt`)"
},
{
"name": "index_Message_processedAt",
"unique": false,
"columnNames": [
"processedAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_processedAt` ON `${TABLE_NAME}` (`processedAt`)"
}
],
"foreignKeys": []
},
{
"tableName": "MessageRecipient",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `phoneNumber` TEXT NOT NULL, `state` TEXT NOT NULL, `error` TEXT, PRIMARY KEY(`messageId`, `phoneNumber`), FOREIGN KEY(`messageId`) REFERENCES `Message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "phoneNumber",
"columnName": "phoneNumber",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "error",
"columnName": "error",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"messageId",
"phoneNumber"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "Message",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId"
],
"referencedColumns": [
"id"
]
}
]
},
{
"tableName": "RecipientState",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `phoneNumber` TEXT NOT NULL, `state` TEXT NOT NULL, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`messageId`, `phoneNumber`, `state`), FOREIGN KEY(`messageId`, `phoneNumber`) REFERENCES `MessageRecipient`(`messageId`, `phoneNumber`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "phoneNumber",
"columnName": "phoneNumber",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "updatedAt",
"columnName": "updatedAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"messageId",
"phoneNumber",
"state"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "MessageRecipient",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId",
"phoneNumber"
],
"referencedColumns": [
"messageId",
"phoneNumber"
]
}
]
},
{
"tableName": "MessageState",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `state` TEXT NOT NULL, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`messageId`, `state`), FOREIGN KEY(`messageId`) REFERENCES `Message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "updatedAt",
"columnName": "updatedAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"messageId",
"state"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "Message",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId"
],
"referencedColumns": [
"id"
]
}
]
}
],
"views": [],
"setupQueries": [
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '76eadaecfb0d5b84f7038edff0d0a1cf')"
]
}
}
@@ -1,306 +0,0 @@
{
"formatVersion": 1,
"database": {
"version": 11,
"identityHash": "8d650175dcd787e41529e8a5c6327311",
"entities": [
{
"tableName": "Message",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `text` TEXT NOT NULL, `withDeliveryReport` INTEGER NOT NULL DEFAULT 1, `simNumber` INTEGER, `validUntil` TEXT, `isEncrypted` INTEGER NOT NULL DEFAULT 0, `skipPhoneValidation` INTEGER NOT NULL DEFAULT 0, `source` TEXT NOT NULL DEFAULT 'Local', `state` TEXT NOT NULL, `createdAt` INTEGER NOT NULL DEFAULT 0, `processedAt` INTEGER, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "text",
"columnName": "text",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "withDeliveryReport",
"columnName": "withDeliveryReport",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "1"
},
{
"fieldPath": "simNumber",
"columnName": "simNumber",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "validUntil",
"columnName": "validUntil",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "isEncrypted",
"columnName": "isEncrypted",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "skipPhoneValidation",
"columnName": "skipPhoneValidation",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "source",
"columnName": "source",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "'Local'"
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "createdAt",
"columnName": "createdAt",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "processedAt",
"columnName": "processedAt",
"affinity": "INTEGER",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [
{
"name": "index_Message_createdAt",
"unique": false,
"columnNames": [
"createdAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_createdAt` ON `${TABLE_NAME}` (`createdAt`)"
},
{
"name": "index_Message_processedAt",
"unique": false,
"columnNames": [
"processedAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_processedAt` ON `${TABLE_NAME}` (`processedAt`)"
}
],
"foreignKeys": []
},
{
"tableName": "MessageRecipient",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `phoneNumber` TEXT NOT NULL, `state` TEXT NOT NULL, `error` TEXT, PRIMARY KEY(`messageId`, `phoneNumber`), FOREIGN KEY(`messageId`) REFERENCES `Message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "phoneNumber",
"columnName": "phoneNumber",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "error",
"columnName": "error",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"messageId",
"phoneNumber"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "Message",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId"
],
"referencedColumns": [
"id"
]
}
]
},
{
"tableName": "RecipientState",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `phoneNumber` TEXT NOT NULL, `state` TEXT NOT NULL, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`messageId`, `phoneNumber`, `state`), FOREIGN KEY(`messageId`, `phoneNumber`) REFERENCES `MessageRecipient`(`messageId`, `phoneNumber`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "phoneNumber",
"columnName": "phoneNumber",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "updatedAt",
"columnName": "updatedAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"messageId",
"phoneNumber",
"state"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "MessageRecipient",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId",
"phoneNumber"
],
"referencedColumns": [
"messageId",
"phoneNumber"
]
}
]
},
{
"tableName": "MessageState",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `state` TEXT NOT NULL, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`messageId`, `state`), FOREIGN KEY(`messageId`) REFERENCES `Message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "updatedAt",
"columnName": "updatedAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"messageId",
"state"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "Message",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId"
],
"referencedColumns": [
"id"
]
}
]
},
{
"tableName": "WebHook",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `url` TEXT NOT NULL, `event` TEXT NOT NULL, `source` TEXT NOT NULL, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "url",
"columnName": "url",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "event",
"columnName": "event",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "source",
"columnName": "source",
"affinity": "TEXT",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": []
}
],
"views": [],
"setupQueries": [
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '8d650175dcd787e41529e8a5c6327311')"
]
}
}
@@ -1,366 +0,0 @@
{
"formatVersion": 1,
"database": {
"version": 12,
"identityHash": "0bb7c2a525bfb354699c9acfec6fb7a1",
"entities": [
{
"tableName": "Message",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `text` TEXT NOT NULL, `withDeliveryReport` INTEGER NOT NULL DEFAULT 1, `simNumber` INTEGER, `validUntil` TEXT, `isEncrypted` INTEGER NOT NULL DEFAULT 0, `skipPhoneValidation` INTEGER NOT NULL DEFAULT 0, `source` TEXT NOT NULL DEFAULT 'Local', `state` TEXT NOT NULL, `createdAt` INTEGER NOT NULL DEFAULT 0, `processedAt` INTEGER, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "text",
"columnName": "text",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "withDeliveryReport",
"columnName": "withDeliveryReport",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "1"
},
{
"fieldPath": "simNumber",
"columnName": "simNumber",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "validUntil",
"columnName": "validUntil",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "isEncrypted",
"columnName": "isEncrypted",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "skipPhoneValidation",
"columnName": "skipPhoneValidation",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "source",
"columnName": "source",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "'Local'"
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "createdAt",
"columnName": "createdAt",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "processedAt",
"columnName": "processedAt",
"affinity": "INTEGER",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [
{
"name": "index_Message_createdAt",
"unique": false,
"columnNames": [
"createdAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_createdAt` ON `${TABLE_NAME}` (`createdAt`)"
},
{
"name": "index_Message_processedAt",
"unique": false,
"columnNames": [
"processedAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_processedAt` ON `${TABLE_NAME}` (`processedAt`)"
}
],
"foreignKeys": []
},
{
"tableName": "MessageRecipient",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `phoneNumber` TEXT NOT NULL, `state` TEXT NOT NULL, `error` TEXT, PRIMARY KEY(`messageId`, `phoneNumber`), FOREIGN KEY(`messageId`) REFERENCES `Message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "phoneNumber",
"columnName": "phoneNumber",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "error",
"columnName": "error",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"messageId",
"phoneNumber"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "Message",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId"
],
"referencedColumns": [
"id"
]
}
]
},
{
"tableName": "RecipientState",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `phoneNumber` TEXT NOT NULL, `state` TEXT NOT NULL, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`messageId`, `phoneNumber`, `state`), FOREIGN KEY(`messageId`, `phoneNumber`) REFERENCES `MessageRecipient`(`messageId`, `phoneNumber`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "phoneNumber",
"columnName": "phoneNumber",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "updatedAt",
"columnName": "updatedAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"messageId",
"phoneNumber",
"state"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "MessageRecipient",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId",
"phoneNumber"
],
"referencedColumns": [
"messageId",
"phoneNumber"
]
}
]
},
{
"tableName": "MessageState",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `state` TEXT NOT NULL, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`messageId`, `state`), FOREIGN KEY(`messageId`) REFERENCES `Message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "updatedAt",
"columnName": "updatedAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"messageId",
"state"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "Message",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId"
],
"referencedColumns": [
"id"
]
}
]
},
{
"tableName": "WebHook",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `url` TEXT NOT NULL, `event` TEXT NOT NULL, `source` TEXT NOT NULL, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "url",
"columnName": "url",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "event",
"columnName": "event",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "source",
"columnName": "source",
"affinity": "TEXT",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "logs_entries",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`priority` TEXT NOT NULL, `module` TEXT NOT NULL, `message` TEXT NOT NULL, `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `context` TEXT, `createdAt` INTEGER NOT NULL)",
"fields": [
{
"fieldPath": "priority",
"columnName": "priority",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "module",
"columnName": "module",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "message",
"columnName": "message",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "id",
"columnName": "id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "context",
"columnName": "context",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "createdAt",
"columnName": "createdAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": true
},
"indices": [
{
"name": "index_logs_entries_createdAt",
"unique": false,
"columnNames": [
"createdAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_logs_entries_createdAt` ON `${TABLE_NAME}` (`createdAt`)"
}
],
"foreignKeys": []
}
],
"views": [],
"setupQueries": [
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '0bb7c2a525bfb354699c9acfec6fb7a1')"
]
}
}
@@ -1,382 +0,0 @@
{
"formatVersion": 1,
"database": {
"version": 13,
"identityHash": "1ef93309ad8e6da02819b46ed75fc050",
"entities": [
{
"tableName": "Message",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `text` TEXT NOT NULL, `withDeliveryReport` INTEGER NOT NULL DEFAULT 1, `simNumber` INTEGER, `validUntil` TEXT, `isEncrypted` INTEGER NOT NULL DEFAULT 0, `skipPhoneValidation` INTEGER NOT NULL DEFAULT 0, `source` TEXT NOT NULL DEFAULT 'Local', `priority` INTEGER NOT NULL DEFAULT 0, `state` TEXT NOT NULL, `createdAt` INTEGER NOT NULL DEFAULT 0, `processedAt` INTEGER, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "text",
"columnName": "text",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "withDeliveryReport",
"columnName": "withDeliveryReport",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "1"
},
{
"fieldPath": "simNumber",
"columnName": "simNumber",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "validUntil",
"columnName": "validUntil",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "isEncrypted",
"columnName": "isEncrypted",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "skipPhoneValidation",
"columnName": "skipPhoneValidation",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "source",
"columnName": "source",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "'Local'"
},
{
"fieldPath": "priority",
"columnName": "priority",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "createdAt",
"columnName": "createdAt",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "processedAt",
"columnName": "processedAt",
"affinity": "INTEGER",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [
{
"name": "index_Message_state",
"unique": false,
"columnNames": [
"state"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_state` ON `${TABLE_NAME}` (`state`)"
},
{
"name": "index_Message_createdAt",
"unique": false,
"columnNames": [
"createdAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_createdAt` ON `${TABLE_NAME}` (`createdAt`)"
},
{
"name": "index_Message_processedAt",
"unique": false,
"columnNames": [
"processedAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_processedAt` ON `${TABLE_NAME}` (`processedAt`)"
}
],
"foreignKeys": []
},
{
"tableName": "MessageRecipient",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `phoneNumber` TEXT NOT NULL, `state` TEXT NOT NULL, `error` TEXT, PRIMARY KEY(`messageId`, `phoneNumber`), FOREIGN KEY(`messageId`) REFERENCES `Message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "phoneNumber",
"columnName": "phoneNumber",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "error",
"columnName": "error",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"messageId",
"phoneNumber"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "Message",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId"
],
"referencedColumns": [
"id"
]
}
]
},
{
"tableName": "RecipientState",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `phoneNumber` TEXT NOT NULL, `state` TEXT NOT NULL, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`messageId`, `phoneNumber`, `state`), FOREIGN KEY(`messageId`, `phoneNumber`) REFERENCES `MessageRecipient`(`messageId`, `phoneNumber`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "phoneNumber",
"columnName": "phoneNumber",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "updatedAt",
"columnName": "updatedAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"messageId",
"phoneNumber",
"state"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "MessageRecipient",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId",
"phoneNumber"
],
"referencedColumns": [
"messageId",
"phoneNumber"
]
}
]
},
{
"tableName": "MessageState",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `state` TEXT NOT NULL, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`messageId`, `state`), FOREIGN KEY(`messageId`) REFERENCES `Message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "updatedAt",
"columnName": "updatedAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"messageId",
"state"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "Message",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId"
],
"referencedColumns": [
"id"
]
}
]
},
{
"tableName": "WebHook",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `url` TEXT NOT NULL, `event` TEXT NOT NULL, `source` TEXT NOT NULL, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "url",
"columnName": "url",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "event",
"columnName": "event",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "source",
"columnName": "source",
"affinity": "TEXT",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "logs_entries",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`priority` TEXT NOT NULL, `module` TEXT NOT NULL, `message` TEXT NOT NULL, `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `context` TEXT, `createdAt` INTEGER NOT NULL)",
"fields": [
{
"fieldPath": "priority",
"columnName": "priority",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "module",
"columnName": "module",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "message",
"columnName": "message",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "id",
"columnName": "id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "context",
"columnName": "context",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "createdAt",
"columnName": "createdAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": true
},
"indices": [
{
"name": "index_logs_entries_createdAt",
"unique": false,
"columnNames": [
"createdAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_logs_entries_createdAt` ON `${TABLE_NAME}` (`createdAt`)"
}
],
"foreignKeys": []
}
],
"views": [],
"setupQueries": [
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '1ef93309ad8e6da02819b46ed75fc050')"
]
}
}
@@ -1,389 +0,0 @@
{
"formatVersion": 1,
"database": {
"version": 14,
"identityHash": "b6d02f75a658aca5ece43d2a914dba57",
"entities": [
{
"tableName": "Message",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `withDeliveryReport` INTEGER NOT NULL DEFAULT 1, `simNumber` INTEGER, `validUntil` TEXT, `isEncrypted` INTEGER NOT NULL DEFAULT 0, `skipPhoneValidation` INTEGER NOT NULL DEFAULT 0, `priority` INTEGER NOT NULL DEFAULT 0, `source` TEXT NOT NULL DEFAULT 'Local', `type` TEXT NOT NULL DEFAULT 'Text', `content` TEXT NOT NULL, `state` TEXT NOT NULL, `createdAt` INTEGER NOT NULL DEFAULT 0, `processedAt` INTEGER, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "withDeliveryReport",
"columnName": "withDeliveryReport",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "1"
},
{
"fieldPath": "simNumber",
"columnName": "simNumber",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "validUntil",
"columnName": "validUntil",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "isEncrypted",
"columnName": "isEncrypted",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "skipPhoneValidation",
"columnName": "skipPhoneValidation",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "priority",
"columnName": "priority",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "source",
"columnName": "source",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "'Local'"
},
{
"fieldPath": "type",
"columnName": "type",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "'Text'"
},
{
"fieldPath": "content",
"columnName": "content",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "createdAt",
"columnName": "createdAt",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "processedAt",
"columnName": "processedAt",
"affinity": "INTEGER",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [
{
"name": "index_Message_state",
"unique": false,
"columnNames": [
"state"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_state` ON `${TABLE_NAME}` (`state`)"
},
{
"name": "index_Message_createdAt",
"unique": false,
"columnNames": [
"createdAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_createdAt` ON `${TABLE_NAME}` (`createdAt`)"
},
{
"name": "index_Message_processedAt",
"unique": false,
"columnNames": [
"processedAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_processedAt` ON `${TABLE_NAME}` (`processedAt`)"
}
],
"foreignKeys": []
},
{
"tableName": "MessageRecipient",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `phoneNumber` TEXT NOT NULL, `state` TEXT NOT NULL, `error` TEXT, PRIMARY KEY(`messageId`, `phoneNumber`), FOREIGN KEY(`messageId`) REFERENCES `Message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "phoneNumber",
"columnName": "phoneNumber",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "error",
"columnName": "error",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"messageId",
"phoneNumber"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "Message",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId"
],
"referencedColumns": [
"id"
]
}
]
},
{
"tableName": "RecipientState",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `phoneNumber` TEXT NOT NULL, `state` TEXT NOT NULL, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`messageId`, `phoneNumber`, `state`), FOREIGN KEY(`messageId`, `phoneNumber`) REFERENCES `MessageRecipient`(`messageId`, `phoneNumber`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "phoneNumber",
"columnName": "phoneNumber",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "updatedAt",
"columnName": "updatedAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"messageId",
"phoneNumber",
"state"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "MessageRecipient",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId",
"phoneNumber"
],
"referencedColumns": [
"messageId",
"phoneNumber"
]
}
]
},
{
"tableName": "MessageState",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `state` TEXT NOT NULL, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`messageId`, `state`), FOREIGN KEY(`messageId`) REFERENCES `Message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "updatedAt",
"columnName": "updatedAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"messageId",
"state"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "Message",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId"
],
"referencedColumns": [
"id"
]
}
]
},
{
"tableName": "WebHook",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `url` TEXT NOT NULL, `event` TEXT NOT NULL, `source` TEXT NOT NULL, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "url",
"columnName": "url",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "event",
"columnName": "event",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "source",
"columnName": "source",
"affinity": "TEXT",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "logs_entries",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`priority` TEXT NOT NULL, `module` TEXT NOT NULL, `message` TEXT NOT NULL, `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `context` TEXT, `createdAt` INTEGER NOT NULL)",
"fields": [
{
"fieldPath": "priority",
"columnName": "priority",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "module",
"columnName": "module",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "message",
"columnName": "message",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "id",
"columnName": "id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "context",
"columnName": "context",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "createdAt",
"columnName": "createdAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": true
},
"indices": [
{
"name": "index_logs_entries_createdAt",
"unique": false,
"columnNames": [
"createdAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_logs_entries_createdAt` ON `${TABLE_NAME}` (`createdAt`)"
}
],
"foreignKeys": []
}
],
"views": [],
"setupQueries": [
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'b6d02f75a658aca5ece43d2a914dba57')"
]
}
}
@@ -1,391 +0,0 @@
{
"formatVersion": 1,
"database": {
"version": 15,
"identityHash": "e94488261a9a62360b4540f737805373",
"entities": [
{
"tableName": "Message",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `withDeliveryReport` INTEGER NOT NULL DEFAULT 1, `simNumber` INTEGER, `validUntil` TEXT, `isEncrypted` INTEGER NOT NULL DEFAULT 0, `skipPhoneValidation` INTEGER NOT NULL DEFAULT 0, `priority` INTEGER NOT NULL DEFAULT 0, `source` TEXT NOT NULL DEFAULT 'Local', `type` TEXT NOT NULL DEFAULT 'Text', `content` TEXT NOT NULL, `state` TEXT NOT NULL, `createdAt` INTEGER NOT NULL DEFAULT 0, `processedAt` INTEGER, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "withDeliveryReport",
"columnName": "withDeliveryReport",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "1"
},
{
"fieldPath": "simNumber",
"columnName": "simNumber",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "validUntil",
"columnName": "validUntil",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "isEncrypted",
"columnName": "isEncrypted",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "skipPhoneValidation",
"columnName": "skipPhoneValidation",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "priority",
"columnName": "priority",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "source",
"columnName": "source",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "'Local'"
},
{
"fieldPath": "type",
"columnName": "type",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "'Text'"
},
{
"fieldPath": "content",
"columnName": "content",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "createdAt",
"columnName": "createdAt",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "processedAt",
"columnName": "processedAt",
"affinity": "INTEGER",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [
{
"name": "index_Message_createdAt",
"unique": false,
"columnNames": [
"createdAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_createdAt` ON `${TABLE_NAME}` (`createdAt`)"
},
{
"name": "index_Message_state_processedAt",
"unique": false,
"columnNames": [
"state",
"processedAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_state_processedAt` ON `${TABLE_NAME}` (`state`, `processedAt`)"
},
{
"name": "index_Message_state_createdAt",
"unique": false,
"columnNames": [
"state",
"createdAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_state_createdAt` ON `${TABLE_NAME}` (`state`, `createdAt`)"
}
],
"foreignKeys": []
},
{
"tableName": "MessageRecipient",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `phoneNumber` TEXT NOT NULL, `state` TEXT NOT NULL, `error` TEXT, PRIMARY KEY(`messageId`, `phoneNumber`), FOREIGN KEY(`messageId`) REFERENCES `Message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "phoneNumber",
"columnName": "phoneNumber",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "error",
"columnName": "error",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"messageId",
"phoneNumber"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "Message",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId"
],
"referencedColumns": [
"id"
]
}
]
},
{
"tableName": "RecipientState",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `phoneNumber` TEXT NOT NULL, `state` TEXT NOT NULL, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`messageId`, `phoneNumber`, `state`), FOREIGN KEY(`messageId`, `phoneNumber`) REFERENCES `MessageRecipient`(`messageId`, `phoneNumber`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "phoneNumber",
"columnName": "phoneNumber",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "updatedAt",
"columnName": "updatedAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"messageId",
"phoneNumber",
"state"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "MessageRecipient",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId",
"phoneNumber"
],
"referencedColumns": [
"messageId",
"phoneNumber"
]
}
]
},
{
"tableName": "MessageState",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `state` TEXT NOT NULL, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`messageId`, `state`), FOREIGN KEY(`messageId`) REFERENCES `Message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "updatedAt",
"columnName": "updatedAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"messageId",
"state"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "Message",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId"
],
"referencedColumns": [
"id"
]
}
]
},
{
"tableName": "WebHook",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `url` TEXT NOT NULL, `event` TEXT NOT NULL, `source` TEXT NOT NULL, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "url",
"columnName": "url",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "event",
"columnName": "event",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "source",
"columnName": "source",
"affinity": "TEXT",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "logs_entries",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`priority` TEXT NOT NULL, `module` TEXT NOT NULL, `message` TEXT NOT NULL, `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `context` TEXT, `createdAt` INTEGER NOT NULL)",
"fields": [
{
"fieldPath": "priority",
"columnName": "priority",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "module",
"columnName": "module",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "message",
"columnName": "message",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "id",
"columnName": "id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "context",
"columnName": "context",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "createdAt",
"columnName": "createdAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": true
},
"indices": [
{
"name": "index_logs_entries_createdAt",
"unique": false,
"columnNames": [
"createdAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_logs_entries_createdAt` ON `${TABLE_NAME}` (`createdAt`)"
}
],
"foreignKeys": []
}
],
"views": [],
"setupQueries": [
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'e94488261a9a62360b4540f737805373')"
]
}
}
@@ -1,397 +0,0 @@
{
"formatVersion": 1,
"database": {
"version": 16,
"identityHash": "c9bca869f0cb40b9f25fbc44308fe786",
"entities": [
{
"tableName": "Message",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `withDeliveryReport` INTEGER NOT NULL DEFAULT 1, `simNumber` INTEGER, `validUntil` TEXT, `isEncrypted` INTEGER NOT NULL DEFAULT 0, `skipPhoneValidation` INTEGER NOT NULL DEFAULT 0, `priority` INTEGER NOT NULL DEFAULT 0, `source` TEXT NOT NULL DEFAULT 'Local', `type` TEXT NOT NULL DEFAULT 'Text', `content` TEXT NOT NULL, `state` TEXT NOT NULL, `partsCount` INTEGER, `createdAt` INTEGER NOT NULL DEFAULT 0, `processedAt` INTEGER, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "withDeliveryReport",
"columnName": "withDeliveryReport",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "1"
},
{
"fieldPath": "simNumber",
"columnName": "simNumber",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "validUntil",
"columnName": "validUntil",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "isEncrypted",
"columnName": "isEncrypted",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "skipPhoneValidation",
"columnName": "skipPhoneValidation",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "priority",
"columnName": "priority",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "source",
"columnName": "source",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "'Local'"
},
{
"fieldPath": "type",
"columnName": "type",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "'Text'"
},
{
"fieldPath": "content",
"columnName": "content",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "partsCount",
"columnName": "partsCount",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "createdAt",
"columnName": "createdAt",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "processedAt",
"columnName": "processedAt",
"affinity": "INTEGER",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [
{
"name": "index_Message_createdAt",
"unique": false,
"columnNames": [
"createdAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_createdAt` ON `${TABLE_NAME}` (`createdAt`)"
},
{
"name": "index_Message_state_processedAt",
"unique": false,
"columnNames": [
"state",
"processedAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_state_processedAt` ON `${TABLE_NAME}` (`state`, `processedAt`)"
},
{
"name": "index_Message_state_createdAt",
"unique": false,
"columnNames": [
"state",
"createdAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_state_createdAt` ON `${TABLE_NAME}` (`state`, `createdAt`)"
}
],
"foreignKeys": []
},
{
"tableName": "MessageRecipient",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `phoneNumber` TEXT NOT NULL, `state` TEXT NOT NULL, `error` TEXT, PRIMARY KEY(`messageId`, `phoneNumber`), FOREIGN KEY(`messageId`) REFERENCES `Message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "phoneNumber",
"columnName": "phoneNumber",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "error",
"columnName": "error",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"messageId",
"phoneNumber"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "Message",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId"
],
"referencedColumns": [
"id"
]
}
]
},
{
"tableName": "RecipientState",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `phoneNumber` TEXT NOT NULL, `state` TEXT NOT NULL, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`messageId`, `phoneNumber`, `state`), FOREIGN KEY(`messageId`, `phoneNumber`) REFERENCES `MessageRecipient`(`messageId`, `phoneNumber`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "phoneNumber",
"columnName": "phoneNumber",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "updatedAt",
"columnName": "updatedAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"messageId",
"phoneNumber",
"state"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "MessageRecipient",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId",
"phoneNumber"
],
"referencedColumns": [
"messageId",
"phoneNumber"
]
}
]
},
{
"tableName": "MessageState",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `state` TEXT NOT NULL, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`messageId`, `state`), FOREIGN KEY(`messageId`) REFERENCES `Message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "updatedAt",
"columnName": "updatedAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"messageId",
"state"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "Message",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId"
],
"referencedColumns": [
"id"
]
}
]
},
{
"tableName": "WebHook",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `url` TEXT NOT NULL, `event` TEXT NOT NULL, `source` TEXT NOT NULL, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "url",
"columnName": "url",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "event",
"columnName": "event",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "source",
"columnName": "source",
"affinity": "TEXT",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "logs_entries",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`priority` TEXT NOT NULL, `module` TEXT NOT NULL, `message` TEXT NOT NULL, `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `context` TEXT, `createdAt` INTEGER NOT NULL)",
"fields": [
{
"fieldPath": "priority",
"columnName": "priority",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "module",
"columnName": "module",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "message",
"columnName": "message",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "id",
"columnName": "id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "context",
"columnName": "context",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "createdAt",
"columnName": "createdAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": true
},
"indices": [
{
"name": "index_logs_entries_createdAt",
"unique": false,
"columnNames": [
"createdAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_logs_entries_createdAt` ON `${TABLE_NAME}` (`createdAt`)"
}
],
"foreignKeys": []
}
],
"views": [],
"setupQueries": [
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'c9bca869f0cb40b9f25fbc44308fe786')"
]
}
}
@@ -1,482 +0,0 @@
{
"formatVersion": 1,
"database": {
"version": 17,
"identityHash": "e647a679fe74540d36be13c53eadc9cb",
"entities": [
{
"tableName": "Message",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `withDeliveryReport` INTEGER NOT NULL DEFAULT 1, `simNumber` INTEGER, `validUntil` TEXT, `isEncrypted` INTEGER NOT NULL DEFAULT 0, `skipPhoneValidation` INTEGER NOT NULL DEFAULT 0, `priority` INTEGER NOT NULL DEFAULT 0, `source` TEXT NOT NULL DEFAULT 'Local', `type` TEXT NOT NULL DEFAULT 'Text', `content` TEXT NOT NULL, `state` TEXT NOT NULL, `partsCount` INTEGER, `createdAt` INTEGER NOT NULL DEFAULT 0, `processedAt` INTEGER, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "withDeliveryReport",
"columnName": "withDeliveryReport",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "1"
},
{
"fieldPath": "simNumber",
"columnName": "simNumber",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "validUntil",
"columnName": "validUntil",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "isEncrypted",
"columnName": "isEncrypted",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "skipPhoneValidation",
"columnName": "skipPhoneValidation",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "priority",
"columnName": "priority",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "source",
"columnName": "source",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "'Local'"
},
{
"fieldPath": "type",
"columnName": "type",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "'Text'"
},
{
"fieldPath": "content",
"columnName": "content",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "partsCount",
"columnName": "partsCount",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "createdAt",
"columnName": "createdAt",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "processedAt",
"columnName": "processedAt",
"affinity": "INTEGER",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [
{
"name": "index_Message_createdAt",
"unique": false,
"columnNames": [
"createdAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_createdAt` ON `${TABLE_NAME}` (`createdAt`)"
},
{
"name": "index_Message_state_processedAt",
"unique": false,
"columnNames": [
"state",
"processedAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_state_processedAt` ON `${TABLE_NAME}` (`state`, `processedAt`)"
},
{
"name": "index_Message_state_createdAt",
"unique": false,
"columnNames": [
"state",
"createdAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_state_createdAt` ON `${TABLE_NAME}` (`state`, `createdAt`)"
}
],
"foreignKeys": []
},
{
"tableName": "MessageRecipient",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `phoneNumber` TEXT NOT NULL, `state` TEXT NOT NULL, `error` TEXT, PRIMARY KEY(`messageId`, `phoneNumber`), FOREIGN KEY(`messageId`) REFERENCES `Message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "phoneNumber",
"columnName": "phoneNumber",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "error",
"columnName": "error",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"messageId",
"phoneNumber"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "Message",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId"
],
"referencedColumns": [
"id"
]
}
]
},
{
"tableName": "RecipientState",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `phoneNumber` TEXT NOT NULL, `state` TEXT NOT NULL, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`messageId`, `phoneNumber`, `state`), FOREIGN KEY(`messageId`, `phoneNumber`) REFERENCES `MessageRecipient`(`messageId`, `phoneNumber`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "phoneNumber",
"columnName": "phoneNumber",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "updatedAt",
"columnName": "updatedAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"messageId",
"phoneNumber",
"state"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "MessageRecipient",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId",
"phoneNumber"
],
"referencedColumns": [
"messageId",
"phoneNumber"
]
}
]
},
{
"tableName": "MessageState",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `state` TEXT NOT NULL, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`messageId`, `state`), FOREIGN KEY(`messageId`) REFERENCES `Message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "updatedAt",
"columnName": "updatedAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"messageId",
"state"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "Message",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId"
],
"referencedColumns": [
"id"
]
}
]
},
{
"tableName": "WebHook",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `url` TEXT NOT NULL, `event` TEXT NOT NULL, `source` TEXT NOT NULL, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "url",
"columnName": "url",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "event",
"columnName": "event",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "source",
"columnName": "source",
"affinity": "TEXT",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "webhook_queue",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `url` TEXT NOT NULL, `payload` TEXT NOT NULL, `retry_count` INTEGER NOT NULL DEFAULT 0, `status` TEXT NOT NULL DEFAULT 'pending', `created_at` INTEGER NOT NULL, `next_attempt` INTEGER NOT NULL, `last_error` TEXT)",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "url",
"columnName": "url",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "payload",
"columnName": "payload",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "retryCount",
"columnName": "retry_count",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "status",
"columnName": "status",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "'pending'"
},
{
"fieldPath": "createdAt",
"columnName": "created_at",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "nextAttempt",
"columnName": "next_attempt",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "lastError",
"columnName": "last_error",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": true
},
"indices": [
{
"name": "index_webhook_queue_status_next_attempt",
"unique": false,
"columnNames": [
"status",
"next_attempt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_webhook_queue_status_next_attempt` ON `${TABLE_NAME}` (`status`, `next_attempt`)"
},
{
"name": "index_webhook_queue_status_created_at",
"unique": false,
"columnNames": [
"status",
"created_at"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_webhook_queue_status_created_at` ON `${TABLE_NAME}` (`status`, `created_at`)"
}
],
"foreignKeys": []
},
{
"tableName": "logs_entries",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`priority` TEXT NOT NULL, `module` TEXT NOT NULL, `message` TEXT NOT NULL, `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `context` TEXT, `createdAt` INTEGER NOT NULL)",
"fields": [
{
"fieldPath": "priority",
"columnName": "priority",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "module",
"columnName": "module",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "message",
"columnName": "message",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "id",
"columnName": "id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "context",
"columnName": "context",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "createdAt",
"columnName": "createdAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": true
},
"indices": [
{
"name": "index_logs_entries_createdAt",
"unique": false,
"columnNames": [
"createdAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_logs_entries_createdAt` ON `${TABLE_NAME}` (`createdAt`)"
}
],
"foreignKeys": []
}
],
"views": [],
"setupQueries": [
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'e647a679fe74540d36be13c53eadc9cb')"
]
}
}
@@ -1,524 +0,0 @@
{
"formatVersion": 1,
"database": {
"version": 18,
"identityHash": "b001a953ad105f209e7c4a05c2f4c3ff",
"entities": [
{
"tableName": "Message",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `withDeliveryReport` INTEGER NOT NULL DEFAULT 1, `simNumber` INTEGER, `validUntil` TEXT, `isEncrypted` INTEGER NOT NULL DEFAULT 0, `skipPhoneValidation` INTEGER NOT NULL DEFAULT 0, `priority` INTEGER NOT NULL DEFAULT 0, `source` TEXT NOT NULL DEFAULT 'Local', `type` TEXT NOT NULL DEFAULT 'Text', `content` TEXT NOT NULL, `state` TEXT NOT NULL, `partsCount` INTEGER, `createdAt` INTEGER NOT NULL DEFAULT 0, `processedAt` INTEGER, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "withDeliveryReport",
"columnName": "withDeliveryReport",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "1"
},
{
"fieldPath": "simNumber",
"columnName": "simNumber",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "validUntil",
"columnName": "validUntil",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "isEncrypted",
"columnName": "isEncrypted",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "skipPhoneValidation",
"columnName": "skipPhoneValidation",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "priority",
"columnName": "priority",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "source",
"columnName": "source",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "'Local'"
},
{
"fieldPath": "type",
"columnName": "type",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "'Text'"
},
{
"fieldPath": "content",
"columnName": "content",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "partsCount",
"columnName": "partsCount",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "createdAt",
"columnName": "createdAt",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "processedAt",
"columnName": "processedAt",
"affinity": "INTEGER",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [
{
"name": "index_Message_createdAt",
"unique": false,
"columnNames": [
"createdAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_createdAt` ON `${TABLE_NAME}` (`createdAt`)"
},
{
"name": "index_Message_state_processedAt",
"unique": false,
"columnNames": [
"state",
"processedAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_state_processedAt` ON `${TABLE_NAME}` (`state`, `processedAt`)"
},
{
"name": "index_Message_state_createdAt",
"unique": false,
"columnNames": [
"state",
"createdAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_state_createdAt` ON `${TABLE_NAME}` (`state`, `createdAt`)"
}
],
"foreignKeys": []
},
{
"tableName": "MessageRecipient",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `phoneNumber` TEXT NOT NULL, `state` TEXT NOT NULL, `error` TEXT, PRIMARY KEY(`messageId`, `phoneNumber`), FOREIGN KEY(`messageId`) REFERENCES `Message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "phoneNumber",
"columnName": "phoneNumber",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "error",
"columnName": "error",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"messageId",
"phoneNumber"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "Message",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId"
],
"referencedColumns": [
"id"
]
}
]
},
{
"tableName": "RecipientState",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `phoneNumber` TEXT NOT NULL, `state` TEXT NOT NULL, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`messageId`, `phoneNumber`, `state`), FOREIGN KEY(`messageId`, `phoneNumber`) REFERENCES `MessageRecipient`(`messageId`, `phoneNumber`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "phoneNumber",
"columnName": "phoneNumber",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "updatedAt",
"columnName": "updatedAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"messageId",
"phoneNumber",
"state"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "MessageRecipient",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId",
"phoneNumber"
],
"referencedColumns": [
"messageId",
"phoneNumber"
]
}
]
},
{
"tableName": "MessageState",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `state` TEXT NOT NULL, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`messageId`, `state`), FOREIGN KEY(`messageId`) REFERENCES `Message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "updatedAt",
"columnName": "updatedAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"messageId",
"state"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "Message",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId"
],
"referencedColumns": [
"id"
]
}
]
},
{
"tableName": "WebHook",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `url` TEXT NOT NULL, `event` TEXT NOT NULL, `source` TEXT NOT NULL, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "url",
"columnName": "url",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "event",
"columnName": "event",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "source",
"columnName": "source",
"affinity": "TEXT",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "webhook_queue",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `url` TEXT NOT NULL, `payload` TEXT NOT NULL, `retry_count` INTEGER NOT NULL DEFAULT 0, `status` TEXT NOT NULL DEFAULT 'pending', `created_at` INTEGER NOT NULL, `next_attempt` INTEGER NOT NULL, `last_error` TEXT)",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "url",
"columnName": "url",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "payload",
"columnName": "payload",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "retryCount",
"columnName": "retry_count",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "status",
"columnName": "status",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "'pending'"
},
{
"fieldPath": "createdAt",
"columnName": "created_at",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "nextAttempt",
"columnName": "next_attempt",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "lastError",
"columnName": "last_error",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": true
},
"indices": [
{
"name": "index_webhook_queue_status_next_attempt",
"unique": false,
"columnNames": [
"status",
"next_attempt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_webhook_queue_status_next_attempt` ON `${TABLE_NAME}` (`status`, `next_attempt`)"
},
{
"name": "index_webhook_queue_status_created_at",
"unique": false,
"columnNames": [
"status",
"created_at"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_webhook_queue_status_created_at` ON `${TABLE_NAME}` (`status`, `created_at`)"
}
],
"foreignKeys": []
},
{
"tableName": "logs_entries",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`priority` TEXT NOT NULL, `module` TEXT NOT NULL, `message` TEXT NOT NULL, `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `context` TEXT, `createdAt` INTEGER NOT NULL)",
"fields": [
{
"fieldPath": "priority",
"columnName": "priority",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "module",
"columnName": "module",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "message",
"columnName": "message",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "id",
"columnName": "id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "context",
"columnName": "context",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "createdAt",
"columnName": "createdAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": true
},
"indices": [
{
"name": "index_logs_entries_createdAt",
"unique": false,
"columnNames": [
"createdAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_logs_entries_createdAt` ON `${TABLE_NAME}` (`createdAt`)"
}
],
"foreignKeys": []
},
{
"tableName": "tokens",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `expiresAt` INTEGER NOT NULL, `revokedAt` INTEGER, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "expiresAt",
"columnName": "expiresAt",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "revokedAt",
"columnName": "revokedAt",
"affinity": "INTEGER",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [
{
"name": "index_tokens_expiresAt",
"unique": false,
"columnNames": [
"expiresAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_tokens_expiresAt` ON `${TABLE_NAME}` (`expiresAt`)"
}
],
"foreignKeys": []
}
],
"views": [],
"setupQueries": [
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'b001a953ad105f209e7c4a05c2f4c3ff')"
]
}
}
@@ -1,605 +0,0 @@
{
"formatVersion": 1,
"database": {
"version": 19,
"identityHash": "ea9afd972e8ac233d6efa55d7cc8109b",
"entities": [
{
"tableName": "Message",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `withDeliveryReport` INTEGER NOT NULL DEFAULT 1, `simNumber` INTEGER, `validUntil` TEXT, `isEncrypted` INTEGER NOT NULL DEFAULT 0, `skipPhoneValidation` INTEGER NOT NULL DEFAULT 0, `priority` INTEGER NOT NULL DEFAULT 0, `source` TEXT NOT NULL DEFAULT 'Local', `type` TEXT NOT NULL DEFAULT 'Text', `content` TEXT NOT NULL, `state` TEXT NOT NULL, `partsCount` INTEGER, `createdAt` INTEGER NOT NULL DEFAULT 0, `processedAt` INTEGER, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "withDeliveryReport",
"columnName": "withDeliveryReport",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "1"
},
{
"fieldPath": "simNumber",
"columnName": "simNumber",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "validUntil",
"columnName": "validUntil",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "isEncrypted",
"columnName": "isEncrypted",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "skipPhoneValidation",
"columnName": "skipPhoneValidation",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "priority",
"columnName": "priority",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "source",
"columnName": "source",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "'Local'"
},
{
"fieldPath": "type",
"columnName": "type",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "'Text'"
},
{
"fieldPath": "content",
"columnName": "content",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "partsCount",
"columnName": "partsCount",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "createdAt",
"columnName": "createdAt",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "processedAt",
"columnName": "processedAt",
"affinity": "INTEGER",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [
{
"name": "index_Message_createdAt",
"unique": false,
"columnNames": [
"createdAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_createdAt` ON `${TABLE_NAME}` (`createdAt`)"
},
{
"name": "index_Message_state_processedAt",
"unique": false,
"columnNames": [
"state",
"processedAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_state_processedAt` ON `${TABLE_NAME}` (`state`, `processedAt`)"
},
{
"name": "index_Message_state_createdAt",
"unique": false,
"columnNames": [
"state",
"createdAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_state_createdAt` ON `${TABLE_NAME}` (`state`, `createdAt`)"
}
],
"foreignKeys": []
},
{
"tableName": "MessageRecipient",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `phoneNumber` TEXT NOT NULL, `state` TEXT NOT NULL, `error` TEXT, PRIMARY KEY(`messageId`, `phoneNumber`), FOREIGN KEY(`messageId`) REFERENCES `Message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "phoneNumber",
"columnName": "phoneNumber",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "error",
"columnName": "error",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"messageId",
"phoneNumber"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "Message",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId"
],
"referencedColumns": [
"id"
]
}
]
},
{
"tableName": "RecipientState",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `phoneNumber` TEXT NOT NULL, `state` TEXT NOT NULL, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`messageId`, `phoneNumber`, `state`), FOREIGN KEY(`messageId`, `phoneNumber`) REFERENCES `MessageRecipient`(`messageId`, `phoneNumber`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "phoneNumber",
"columnName": "phoneNumber",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "updatedAt",
"columnName": "updatedAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"messageId",
"phoneNumber",
"state"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "MessageRecipient",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId",
"phoneNumber"
],
"referencedColumns": [
"messageId",
"phoneNumber"
]
}
]
},
{
"tableName": "MessageState",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `state` TEXT NOT NULL, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`messageId`, `state`), FOREIGN KEY(`messageId`) REFERENCES `Message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "updatedAt",
"columnName": "updatedAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"messageId",
"state"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "Message",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId"
],
"referencedColumns": [
"id"
]
}
]
},
{
"tableName": "WebHook",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `url` TEXT NOT NULL, `event` TEXT NOT NULL, `source` TEXT NOT NULL, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "url",
"columnName": "url",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "event",
"columnName": "event",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "source",
"columnName": "source",
"affinity": "TEXT",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "webhook_queue",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `url` TEXT NOT NULL, `payload` TEXT NOT NULL, `retry_count` INTEGER NOT NULL DEFAULT 0, `status` TEXT NOT NULL DEFAULT 'pending', `created_at` INTEGER NOT NULL, `next_attempt` INTEGER NOT NULL, `last_error` TEXT)",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "url",
"columnName": "url",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "payload",
"columnName": "payload",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "retryCount",
"columnName": "retry_count",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "status",
"columnName": "status",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "'pending'"
},
{
"fieldPath": "createdAt",
"columnName": "created_at",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "nextAttempt",
"columnName": "next_attempt",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "lastError",
"columnName": "last_error",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": true
},
"indices": [
{
"name": "index_webhook_queue_status_next_attempt",
"unique": false,
"columnNames": [
"status",
"next_attempt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_webhook_queue_status_next_attempt` ON `${TABLE_NAME}` (`status`, `next_attempt`)"
},
{
"name": "index_webhook_queue_status_created_at",
"unique": false,
"columnNames": [
"status",
"created_at"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_webhook_queue_status_created_at` ON `${TABLE_NAME}` (`status`, `created_at`)"
}
],
"foreignKeys": []
},
{
"tableName": "logs_entries",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`priority` TEXT NOT NULL, `module` TEXT NOT NULL, `message` TEXT NOT NULL, `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `context` TEXT, `createdAt` INTEGER NOT NULL)",
"fields": [
{
"fieldPath": "priority",
"columnName": "priority",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "module",
"columnName": "module",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "message",
"columnName": "message",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "id",
"columnName": "id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "context",
"columnName": "context",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "createdAt",
"columnName": "createdAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": true
},
"indices": [
{
"name": "index_logs_entries_createdAt",
"unique": false,
"columnNames": [
"createdAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_logs_entries_createdAt` ON `${TABLE_NAME}` (`createdAt`)"
}
],
"foreignKeys": []
},
{
"tableName": "tokens",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `expiresAt` INTEGER NOT NULL, `revokedAt` INTEGER, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "expiresAt",
"columnName": "expiresAt",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "revokedAt",
"columnName": "revokedAt",
"affinity": "INTEGER",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [
{
"name": "index_tokens_expiresAt",
"unique": false,
"columnNames": [
"expiresAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_tokens_expiresAt` ON `${TABLE_NAME}` (`expiresAt`)"
}
],
"foreignKeys": []
},
{
"tableName": "incoming_messages",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `type` TEXT NOT NULL, `sender` TEXT NOT NULL, `recipient` TEXT, `simNumber` INTEGER, `subscriptionId` INTEGER, `contentPreview` TEXT NOT NULL, `createdAt` INTEGER NOT NULL, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "type",
"columnName": "type",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "sender",
"columnName": "sender",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "recipient",
"columnName": "recipient",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "simNumber",
"columnName": "simNumber",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "subscriptionId",
"columnName": "subscriptionId",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "contentPreview",
"columnName": "contentPreview",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "createdAt",
"columnName": "createdAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [
{
"name": "index_incoming_messages_createdAt",
"unique": false,
"columnNames": [
"createdAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_incoming_messages_createdAt` ON `${TABLE_NAME}` (`createdAt`)"
},
{
"name": "index_incoming_messages_type",
"unique": false,
"columnNames": [
"type"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_incoming_messages_type` ON `${TABLE_NAME}` (`type`)"
}
],
"foreignKeys": []
}
],
"views": [],
"setupQueries": [
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'ea9afd972e8ac233d6efa55d7cc8109b')"
]
}
}
@@ -1,98 +0,0 @@
{
"formatVersion": 1,
"database": {
"version": 2,
"identityHash": "1c3c3246ea0f368ec95b740b2f50e18b",
"entities": [
{
"tableName": "Message",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `text` TEXT NOT NULL, `source` TEXT NOT NULL DEFAULT 'Local', `state` TEXT NOT NULL, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "text",
"columnName": "text",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "source",
"columnName": "source",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "'Local'"
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "MessageRecipient",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `phoneNumber` TEXT NOT NULL, `state` TEXT NOT NULL, PRIMARY KEY(`messageId`, `phoneNumber`), FOREIGN KEY(`messageId`) REFERENCES `Message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "phoneNumber",
"columnName": "phoneNumber",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"messageId",
"phoneNumber"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "Message",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId"
],
"referencedColumns": [
"id"
]
}
]
}
],
"views": [],
"setupQueries": [
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '1c3c3246ea0f368ec95b740b2f50e18b')"
]
}
}
@@ -1,605 +0,0 @@
{
"formatVersion": 1,
"database": {
"version": 20,
"identityHash": "b746d44a36cc274b009e421faa9c96ee",
"entities": [
{
"tableName": "Message",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `withDeliveryReport` INTEGER NOT NULL DEFAULT 1, `simNumber` INTEGER, `validUntil` TEXT, `isEncrypted` INTEGER NOT NULL DEFAULT 0, `skipPhoneValidation` INTEGER NOT NULL DEFAULT 0, `priority` INTEGER NOT NULL DEFAULT 0, `source` TEXT NOT NULL DEFAULT 'Local', `type` TEXT NOT NULL DEFAULT 'Text', `content` TEXT NOT NULL, `state` TEXT NOT NULL, `partsCount` INTEGER, `createdAt` INTEGER NOT NULL DEFAULT 0, `processedAt` INTEGER, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "withDeliveryReport",
"columnName": "withDeliveryReport",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "1"
},
{
"fieldPath": "simNumber",
"columnName": "simNumber",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "validUntil",
"columnName": "validUntil",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "isEncrypted",
"columnName": "isEncrypted",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "skipPhoneValidation",
"columnName": "skipPhoneValidation",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "priority",
"columnName": "priority",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "source",
"columnName": "source",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "'Local'"
},
{
"fieldPath": "type",
"columnName": "type",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "'Text'"
},
{
"fieldPath": "content",
"columnName": "content",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "partsCount",
"columnName": "partsCount",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "createdAt",
"columnName": "createdAt",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "processedAt",
"columnName": "processedAt",
"affinity": "INTEGER",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [
{
"name": "index_Message_createdAt",
"unique": false,
"columnNames": [
"createdAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_createdAt` ON `${TABLE_NAME}` (`createdAt`)"
},
{
"name": "index_Message_state_processedAt",
"unique": false,
"columnNames": [
"state",
"processedAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_state_processedAt` ON `${TABLE_NAME}` (`state`, `processedAt`)"
},
{
"name": "index_Message_state_createdAt",
"unique": false,
"columnNames": [
"state",
"createdAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_state_createdAt` ON `${TABLE_NAME}` (`state`, `createdAt`)"
}
],
"foreignKeys": []
},
{
"tableName": "MessageRecipient",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `phoneNumber` TEXT NOT NULL, `state` TEXT NOT NULL, `error` TEXT, PRIMARY KEY(`messageId`, `phoneNumber`), FOREIGN KEY(`messageId`) REFERENCES `Message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "phoneNumber",
"columnName": "phoneNumber",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "error",
"columnName": "error",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"messageId",
"phoneNumber"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "Message",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId"
],
"referencedColumns": [
"id"
]
}
]
},
{
"tableName": "RecipientState",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `phoneNumber` TEXT NOT NULL, `state` TEXT NOT NULL, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`messageId`, `phoneNumber`, `state`), FOREIGN KEY(`messageId`, `phoneNumber`) REFERENCES `MessageRecipient`(`messageId`, `phoneNumber`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "phoneNumber",
"columnName": "phoneNumber",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "updatedAt",
"columnName": "updatedAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"messageId",
"phoneNumber",
"state"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "MessageRecipient",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId",
"phoneNumber"
],
"referencedColumns": [
"messageId",
"phoneNumber"
]
}
]
},
{
"tableName": "MessageState",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `state` TEXT NOT NULL, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`messageId`, `state`), FOREIGN KEY(`messageId`) REFERENCES `Message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "updatedAt",
"columnName": "updatedAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"messageId",
"state"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "Message",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId"
],
"referencedColumns": [
"id"
]
}
]
},
{
"tableName": "WebHook",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `url` TEXT NOT NULL, `event` TEXT NOT NULL, `source` TEXT NOT NULL, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "url",
"columnName": "url",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "event",
"columnName": "event",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "source",
"columnName": "source",
"affinity": "TEXT",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "webhook_queue",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `url` TEXT NOT NULL, `payload` TEXT NOT NULL, `retry_count` INTEGER NOT NULL DEFAULT 0, `status` TEXT NOT NULL DEFAULT 'pending', `created_at` INTEGER NOT NULL, `next_attempt` INTEGER NOT NULL, `last_error` TEXT, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "url",
"columnName": "url",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "payload",
"columnName": "payload",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "retryCount",
"columnName": "retry_count",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "status",
"columnName": "status",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "'pending'"
},
{
"fieldPath": "createdAt",
"columnName": "created_at",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "nextAttempt",
"columnName": "next_attempt",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "lastError",
"columnName": "last_error",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [
{
"name": "index_webhook_queue_status_next_attempt",
"unique": false,
"columnNames": [
"status",
"next_attempt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_webhook_queue_status_next_attempt` ON `${TABLE_NAME}` (`status`, `next_attempt`)"
},
{
"name": "index_webhook_queue_status_created_at",
"unique": false,
"columnNames": [
"status",
"created_at"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_webhook_queue_status_created_at` ON `${TABLE_NAME}` (`status`, `created_at`)"
}
],
"foreignKeys": []
},
{
"tableName": "logs_entries",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`priority` TEXT NOT NULL, `module` TEXT NOT NULL, `message` TEXT NOT NULL, `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `context` TEXT, `createdAt` INTEGER NOT NULL)",
"fields": [
{
"fieldPath": "priority",
"columnName": "priority",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "module",
"columnName": "module",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "message",
"columnName": "message",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "id",
"columnName": "id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "context",
"columnName": "context",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "createdAt",
"columnName": "createdAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": true
},
"indices": [
{
"name": "index_logs_entries_createdAt",
"unique": false,
"columnNames": [
"createdAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_logs_entries_createdAt` ON `${TABLE_NAME}` (`createdAt`)"
}
],
"foreignKeys": []
},
{
"tableName": "tokens",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `expiresAt` INTEGER NOT NULL, `revokedAt` INTEGER, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "expiresAt",
"columnName": "expiresAt",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "revokedAt",
"columnName": "revokedAt",
"affinity": "INTEGER",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [
{
"name": "index_tokens_expiresAt",
"unique": false,
"columnNames": [
"expiresAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_tokens_expiresAt` ON `${TABLE_NAME}` (`expiresAt`)"
}
],
"foreignKeys": []
},
{
"tableName": "incoming_messages",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `type` TEXT NOT NULL, `sender` TEXT NOT NULL, `recipient` TEXT, `simNumber` INTEGER, `subscriptionId` INTEGER, `contentPreview` TEXT NOT NULL, `createdAt` INTEGER NOT NULL, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "type",
"columnName": "type",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "sender",
"columnName": "sender",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "recipient",
"columnName": "recipient",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "simNumber",
"columnName": "simNumber",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "subscriptionId",
"columnName": "subscriptionId",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "contentPreview",
"columnName": "contentPreview",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "createdAt",
"columnName": "createdAt",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [
{
"name": "index_incoming_messages_createdAt",
"unique": false,
"columnNames": [
"createdAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_incoming_messages_createdAt` ON `${TABLE_NAME}` (`createdAt`)"
},
{
"name": "index_incoming_messages_type",
"unique": false,
"columnNames": [
"type"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_incoming_messages_type` ON `${TABLE_NAME}` (`type`)"
}
],
"foreignKeys": []
}
],
"views": [],
"setupQueries": [
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'b746d44a36cc274b009e421faa9c96ee')"
]
}
}
@@ -1,105 +0,0 @@
{
"formatVersion": 1,
"database": {
"version": 3,
"identityHash": "89b4d1142a9c77effbb234879f4b540a",
"entities": [
{
"tableName": "Message",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `text` TEXT NOT NULL, `source` TEXT NOT NULL DEFAULT 'Local', `state` TEXT NOT NULL, `createdAt` INTEGER NOT NULL DEFAULT 0, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "text",
"columnName": "text",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "source",
"columnName": "source",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "'Local'"
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "createdAt",
"columnName": "createdAt",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "MessageRecipient",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `phoneNumber` TEXT NOT NULL, `state` TEXT NOT NULL, PRIMARY KEY(`messageId`, `phoneNumber`), FOREIGN KEY(`messageId`) REFERENCES `Message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "phoneNumber",
"columnName": "phoneNumber",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"messageId",
"phoneNumber"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "Message",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId"
],
"referencedColumns": [
"id"
]
}
]
}
],
"views": [],
"setupQueries": [
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '89b4d1142a9c77effbb234879f4b540a')"
]
}
}
@@ -1,111 +0,0 @@
{
"formatVersion": 1,
"database": {
"version": 4,
"identityHash": "e4a0450ae2b806b52bfbcd2456501a1d",
"entities": [
{
"tableName": "Message",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `text` TEXT NOT NULL, `source` TEXT NOT NULL DEFAULT 'Local', `state` TEXT NOT NULL, `createdAt` INTEGER NOT NULL DEFAULT 0, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "text",
"columnName": "text",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "source",
"columnName": "source",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "'Local'"
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "createdAt",
"columnName": "createdAt",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "MessageRecipient",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `phoneNumber` TEXT NOT NULL, `state` TEXT NOT NULL, `error` TEXT, PRIMARY KEY(`messageId`, `phoneNumber`), FOREIGN KEY(`messageId`) REFERENCES `Message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "phoneNumber",
"columnName": "phoneNumber",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "error",
"columnName": "error",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"messageId",
"phoneNumber"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "Message",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId"
],
"referencedColumns": [
"id"
]
}
]
}
],
"views": [],
"setupQueries": [
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'e4a0450ae2b806b52bfbcd2456501a1d')"
]
}
}
@@ -1,118 +0,0 @@
{
"formatVersion": 1,
"database": {
"version": 5,
"identityHash": "4a86263b9bb6a736271cc66c6faca254",
"entities": [
{
"tableName": "Message",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `text` TEXT NOT NULL, `source` TEXT NOT NULL DEFAULT 'Local', `state` TEXT NOT NULL, `isEncrypted` INTEGER NOT NULL DEFAULT 0, `createdAt` INTEGER NOT NULL DEFAULT 0, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "text",
"columnName": "text",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "source",
"columnName": "source",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "'Local'"
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "isEncrypted",
"columnName": "isEncrypted",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "createdAt",
"columnName": "createdAt",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "MessageRecipient",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `phoneNumber` TEXT NOT NULL, `state` TEXT NOT NULL, `error` TEXT, PRIMARY KEY(`messageId`, `phoneNumber`), FOREIGN KEY(`messageId`) REFERENCES `Message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "phoneNumber",
"columnName": "phoneNumber",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "error",
"columnName": "error",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"messageId",
"phoneNumber"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "Message",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId"
],
"referencedColumns": [
"id"
]
}
]
}
],
"views": [],
"setupQueries": [
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '4a86263b9bb6a736271cc66c6faca254')"
]
}
}
@@ -1,137 +0,0 @@
{
"formatVersion": 1,
"database": {
"version": 6,
"identityHash": "c85c71171bb3e9eb347615dd91e7ae82",
"entities": [
{
"tableName": "Message",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `text` TEXT NOT NULL, `withDeliveryReport` INTEGER NOT NULL DEFAULT 1, `simNumber` INTEGER, `validUntil` TEXT, `isEncrypted` INTEGER NOT NULL DEFAULT 0, `state` TEXT NOT NULL, `source` TEXT NOT NULL DEFAULT 'Local', `createdAt` INTEGER NOT NULL DEFAULT 0, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "text",
"columnName": "text",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "withDeliveryReport",
"columnName": "withDeliveryReport",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "1"
},
{
"fieldPath": "simNumber",
"columnName": "simNumber",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "validUntil",
"columnName": "validUntil",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "isEncrypted",
"columnName": "isEncrypted",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "source",
"columnName": "source",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "'Local'"
},
{
"fieldPath": "createdAt",
"columnName": "createdAt",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "MessageRecipient",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `phoneNumber` TEXT NOT NULL, `state` TEXT NOT NULL, `error` TEXT, PRIMARY KEY(`messageId`, `phoneNumber`), FOREIGN KEY(`messageId`) REFERENCES `Message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "phoneNumber",
"columnName": "phoneNumber",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "error",
"columnName": "error",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"messageId",
"phoneNumber"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "Message",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId"
],
"referencedColumns": [
"id"
]
}
]
}
],
"views": [],
"setupQueries": [
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'c85c71171bb3e9eb347615dd91e7ae82')"
]
}
}
@@ -1,144 +0,0 @@
{
"formatVersion": 1,
"database": {
"version": 7,
"identityHash": "0638620d8ed8717433cb8e718cfc4646",
"entities": [
{
"tableName": "Message",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `text` TEXT NOT NULL, `withDeliveryReport` INTEGER NOT NULL DEFAULT 1, `simNumber` INTEGER, `validUntil` TEXT, `isEncrypted` INTEGER NOT NULL DEFAULT 0, `skipPhoneValidation` INTEGER NOT NULL DEFAULT 0, `source` TEXT NOT NULL DEFAULT 'Local', `state` TEXT NOT NULL, `createdAt` INTEGER NOT NULL DEFAULT 0, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "text",
"columnName": "text",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "withDeliveryReport",
"columnName": "withDeliveryReport",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "1"
},
{
"fieldPath": "simNumber",
"columnName": "simNumber",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "validUntil",
"columnName": "validUntil",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "isEncrypted",
"columnName": "isEncrypted",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "skipPhoneValidation",
"columnName": "skipPhoneValidation",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "source",
"columnName": "source",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "'Local'"
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "createdAt",
"columnName": "createdAt",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "MessageRecipient",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `phoneNumber` TEXT NOT NULL, `state` TEXT NOT NULL, `error` TEXT, PRIMARY KEY(`messageId`, `phoneNumber`), FOREIGN KEY(`messageId`) REFERENCES `Message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "phoneNumber",
"columnName": "phoneNumber",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "error",
"columnName": "error",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"messageId",
"phoneNumber"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "Message",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId"
],
"referencedColumns": [
"id"
]
}
]
}
],
"views": [],
"setupQueries": [
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '0638620d8ed8717433cb8e718cfc4646')"
]
}
}
@@ -1,144 +0,0 @@
{
"formatVersion": 1,
"database": {
"version": 8,
"identityHash": "0638620d8ed8717433cb8e718cfc4646",
"entities": [
{
"tableName": "Message",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `text` TEXT NOT NULL, `withDeliveryReport` INTEGER NOT NULL DEFAULT 1, `simNumber` INTEGER, `validUntil` TEXT, `isEncrypted` INTEGER NOT NULL DEFAULT 0, `skipPhoneValidation` INTEGER NOT NULL DEFAULT 0, `source` TEXT NOT NULL DEFAULT 'Local', `state` TEXT NOT NULL, `createdAt` INTEGER NOT NULL DEFAULT 0, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "text",
"columnName": "text",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "withDeliveryReport",
"columnName": "withDeliveryReport",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "1"
},
{
"fieldPath": "simNumber",
"columnName": "simNumber",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "validUntil",
"columnName": "validUntil",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "isEncrypted",
"columnName": "isEncrypted",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "skipPhoneValidation",
"columnName": "skipPhoneValidation",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "source",
"columnName": "source",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "'Local'"
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "createdAt",
"columnName": "createdAt",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "MessageRecipient",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `phoneNumber` TEXT NOT NULL, `state` TEXT NOT NULL, `error` TEXT, PRIMARY KEY(`messageId`, `phoneNumber`), FOREIGN KEY(`messageId`) REFERENCES `Message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "phoneNumber",
"columnName": "phoneNumber",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "error",
"columnName": "error",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"messageId",
"phoneNumber"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "Message",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId"
],
"referencedColumns": [
"id"
]
}
]
}
],
"views": [],
"setupQueries": [
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '0638620d8ed8717433cb8e718cfc4646')"
]
}
}
@@ -1,169 +0,0 @@
{
"formatVersion": 1,
"database": {
"version": 9,
"identityHash": "bfb73410aeb4903b9ea559c1b60bd8e3",
"entities": [
{
"tableName": "Message",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `text` TEXT NOT NULL, `withDeliveryReport` INTEGER NOT NULL DEFAULT 1, `simNumber` INTEGER, `validUntil` TEXT, `isEncrypted` INTEGER NOT NULL DEFAULT 0, `skipPhoneValidation` INTEGER NOT NULL DEFAULT 0, `source` TEXT NOT NULL DEFAULT 'Local', `state` TEXT NOT NULL, `createdAt` INTEGER NOT NULL DEFAULT 0, `processedAt` INTEGER, PRIMARY KEY(`id`))",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "text",
"columnName": "text",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "withDeliveryReport",
"columnName": "withDeliveryReport",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "1"
},
{
"fieldPath": "simNumber",
"columnName": "simNumber",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "validUntil",
"columnName": "validUntil",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "isEncrypted",
"columnName": "isEncrypted",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "skipPhoneValidation",
"columnName": "skipPhoneValidation",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "source",
"columnName": "source",
"affinity": "TEXT",
"notNull": true,
"defaultValue": "'Local'"
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "createdAt",
"columnName": "createdAt",
"affinity": "INTEGER",
"notNull": true,
"defaultValue": "0"
},
{
"fieldPath": "processedAt",
"columnName": "processedAt",
"affinity": "INTEGER",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": false
},
"indices": [
{
"name": "index_Message_createdAt",
"unique": false,
"columnNames": [
"createdAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_createdAt` ON `${TABLE_NAME}` (`createdAt`)"
},
{
"name": "index_Message_processedAt",
"unique": false,
"columnNames": [
"processedAt"
],
"orders": [],
"createSql": "CREATE INDEX IF NOT EXISTS `index_Message_processedAt` ON `${TABLE_NAME}` (`processedAt`)"
}
],
"foreignKeys": []
},
{
"tableName": "MessageRecipient",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `phoneNumber` TEXT NOT NULL, `state` TEXT NOT NULL, `error` TEXT, PRIMARY KEY(`messageId`, `phoneNumber`), FOREIGN KEY(`messageId`) REFERENCES `Message`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "messageId",
"columnName": "messageId",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "phoneNumber",
"columnName": "phoneNumber",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "state",
"columnName": "state",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "error",
"columnName": "error",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"columnNames": [
"messageId",
"phoneNumber"
],
"autoGenerate": false
},
"indices": [],
"foreignKeys": [
{
"table": "Message",
"onDelete": "CASCADE",
"onUpdate": "NO ACTION",
"columns": [
"messageId"
],
"referencedColumns": [
"id"
]
}
]
}
],
"views": [],
"setupQueries": [
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'bfb73410aeb4903b9ea559c1b60bd8e3')"
]
}
}
@@ -0,0 +1 @@
ewogICJmb3JtYXRWZXJzaW9uIjogMSwKICAiZGF0YWJhc2UiOiB7CiAgICAidmVyc2lvbiI6IDEsCiAgICAiaWRlbnRpdHlIYXNoIjogIjY3ZmU0ODFiNDg1ZjRkMjcwNWFiNzQ2ODg0YWQ2OWIxIiwKICAgICJlbnRpdGllcyI6IFsKICAgICAgewogICAgICAgICJ0YWJsZU5hbWUiOiAiTWVzc2FnZSIsCiAgICAgICAgImNyZWF0ZVNxbCI6ICJDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBgJHtUQUJMRV9OQU1FfWAgKGBpZGAgVEVYVCBOT1QgTlVMTCwgYHRleHRgIFRFWFQgTk9UIE5VTEwsIGBzdGF0ZWAgVEVYVCBOT1QgTlVMTCwgUFJJTUFSWSBLRVkoYGlkYCkpIiwKICAgICAgICAiZmllbGRzIjogWwogICAgICAgICAgewogICAgICAgICAgICAiZmllbGRQYXRoIjogImlkIiwKICAgICAgICAgICAgImNvbHVtbk5hbWUiOiAiaWQiLAogICAgICAgICAgICAiYWZmaW5pdHkiOiAiVEVYVCIsCiAgICAgICAgICAgICJub3ROdWxsIjogdHJ1ZQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImZpZWxkUGF0aCI6ICJ0ZXh0IiwKICAgICAgICAgICAgImNvbHVtbk5hbWUiOiAidGV4dCIsCiAgICAgICAgICAgICJhZmZpbml0eSI6ICJURVhUIiwKICAgICAgICAgICAgIm5vdE51bGwiOiB0cnVlCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZmllbGRQYXRoIjogInN0YXRlIiwKICAgICAgICAgICAgImNvbHVtbk5hbWUiOiAic3RhdGUiLAogICAgICAgICAgICAiYWZmaW5pdHkiOiAiVEVYVCIsCiAgICAgICAgICAgICJub3ROdWxsIjogdHJ1ZQogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInByaW1hcnlLZXkiOiB7CiAgICAgICAgICAiY29sdW1uTmFtZXMiOiBbCiAgICAgICAgICAgICJpZCIKICAgICAgICAgIF0sCiAgICAgICAgICAiYXV0b0dlbmVyYXRlIjogZmFsc2UKICAgICAgICB9LAogICAgICAgICJpbmRpY2VzIjogW10sCiAgICAgICAgImZvcmVpZ25LZXlzIjogW10KICAgICAgfSwKICAgICAgewogICAgICAgICJ0YWJsZU5hbWUiOiAiTWVzc2FnZVJlY2lwaWVudCIsCiAgICAgICAgImNyZWF0ZVNxbCI6ICJDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBgJHtUQUJMRV9OQU1FfWAgKGBtZXNzYWdlSWRgIFRFWFQgTk9UIE5VTEwsIGBwaG9uZU51bWJlcmAgVEVYVCBOT1QgTlVMTCwgYHN0YXRlYCBURVhUIE5PVCBOVUxMLCBQUklNQVJZIEtFWShgbWVzc2FnZUlkYCwgYHBob25lTnVtYmVyYCksIEZPUkVJR04gS0VZKGBtZXNzYWdlSWRgKSBSRUZFUkVOQ0VTIGBNZXNzYWdlYChgaWRgKSBPTiBVUERBVEUgTk8gQUNUSU9OIE9OIERFTEVURSBDQVNDQURFICkiLAogICAgICAgICJmaWVsZHMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJmaWVsZFBhdGgiOiAibWVzc2FnZUlkIiwKICAgICAgICAgICAgImNvbHVtbk5hbWUiOiAibWVzc2FnZUlkIiwKICAgICAgICAgICAgImFmZmluaXR5IjogIlRFWFQiLAogICAgICAgICAgICAibm90TnVsbCI6IHRydWUKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJmaWVsZFBhdGgiOiAicGhvbmVOdW1iZXIiLAogICAgICAgICAgICAiY29sdW1uTmFtZSI6ICJwaG9uZU51bWJlciIsCiAgICAgICAgICAgICJhZmZpbml0eSI6ICJURVhUIiwKICAgICAgICAgICAgIm5vdE51bGwiOiB0cnVlCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZmllbGRQYXRoIjogInN0YXRlIiwKICAgICAgICAgICAgImNvbHVtbk5hbWUiOiAic3RhdGUiLAogICAgICAgICAgICAiYWZmaW5pdHkiOiAiVEVYVCIsCiAgICAgICAgICAgICJub3ROdWxsIjogdHJ1ZQogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInByaW1hcnlLZXkiOiB7CiAgICAgICAgICAiY29sdW1uTmFtZXMiOiBbCiAgICAgICAgICAgICJtZXNzYWdlSWQiLAogICAgICAgICAgICAicGhvbmVOdW1iZXIiCiAgICAgICAgICBdLAogICAgICAgICAgImF1dG9HZW5lcmF0ZSI6IGZhbHNlCiAgICAgICAgfSwKICAgICAgICAiaW5kaWNlcyI6IFtdLAogICAgICAgICJmb3JlaWduS2V5cyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgInRhYmxlIjogIk1lc3NhZ2UiLAogICAgICAgICAgICAib25EZWxldGUiOiAiQ0FTQ0FERSIsCiAgICAgICAgICAgICJvblVwZGF0ZSI6ICJOTyBBQ1RJT04iLAogICAgICAgICAgICAiY29sdW1ucyI6IFsKICAgICAgICAgICAgICAibWVzc2FnZUlkIgogICAgICAgICAgICBdLAogICAgICAgICAgICAicmVmZXJlbmNlZENvbHVtbnMiOiBbCiAgICAgICAgICAgICAgImlkIgogICAgICAgICAgICBdCiAgICAgICAgICB9CiAgICAgICAgXQogICAgICB9CiAgICBdLAogICAgInZpZXdzIjogW10sCiAgICAic2V0dXBRdWVyaWVzIjogWwogICAgICAiQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgcm9vbV9tYXN0ZXJfdGFibGUgKGlkIElOVEVHRVIgUFJJTUFSWSBLRVksaWRlbnRpdHlfaGFzaCBURVhUKSIsCiAgICAgICJJTlNFUlQgT1IgUkVQTEFDRSBJTlRPIHJvb21fbWFzdGVyX3RhYmxlIChpZCxpZGVudGl0eV9oYXNoKSBWQUxVRVMoNDIsICc2N2ZlNDgxYjQ4NWY0ZDI3MDVhYjc0Njg4NGFkNjliMScpIgogICAgXQogIH0KfQ==
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
ewogICJmb3JtYXRWZXJzaW9uIjogMSwKICAiZGF0YWJhc2UiOiB7CiAgICAidmVyc2lvbiI6IDIsCiAgICAiaWRlbnRpdHlIYXNoIjogIjFjM2MzMjQ2ZWEwZjM2OGVjOTViNzQwYjJmNTBlMThiIiwKICAgICJlbnRpdGllcyI6IFsKICAgICAgewogICAgICAgICJ0YWJsZU5hbWUiOiAiTWVzc2FnZSIsCiAgICAgICAgImNyZWF0ZVNxbCI6ICJDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBgJHtUQUJMRV9OQU1FfWAgKGBpZGAgVEVYVCBOT1QgTlVMTCwgYHRleHRgIFRFWFQgTk9UIE5VTEwsIGBzb3VyY2VgIFRFWFQgTk9UIE5VTEwgREVGQVVMVCAnTG9jYWwnLCBgc3RhdGVgIFRFWFQgTk9UIE5VTEwsIFBSSU1BUlkgS0VZKGBpZGApKSIsCiAgICAgICAgImZpZWxkcyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImZpZWxkUGF0aCI6ICJpZCIsCiAgICAgICAgICAgICJjb2x1bW5OYW1lIjogImlkIiwKICAgICAgICAgICAgImFmZmluaXR5IjogIlRFWFQiLAogICAgICAgICAgICAibm90TnVsbCI6IHRydWUKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJmaWVsZFBhdGgiOiAidGV4dCIsCiAgICAgICAgICAgICJjb2x1bW5OYW1lIjogInRleHQiLAogICAgICAgICAgICAiYWZmaW5pdHkiOiAiVEVYVCIsCiAgICAgICAgICAgICJub3ROdWxsIjogdHJ1ZQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImZpZWxkUGF0aCI6ICJzb3VyY2UiLAogICAgICAgICAgICAiY29sdW1uTmFtZSI6ICJzb3VyY2UiLAogICAgICAgICAgICAiYWZmaW5pdHkiOiAiVEVYVCIsCiAgICAgICAgICAgICJub3ROdWxsIjogdHJ1ZSwKICAgICAgICAgICAgImRlZmF1bHRWYWx1ZSI6ICInTG9jYWwnIgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImZpZWxkUGF0aCI6ICJzdGF0ZSIsCiAgICAgICAgICAgICJjb2x1bW5OYW1lIjogInN0YXRlIiwKICAgICAgICAgICAgImFmZmluaXR5IjogIlRFWFQiLAogICAgICAgICAgICAibm90TnVsbCI6IHRydWUKICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwcmltYXJ5S2V5IjogewogICAgICAgICAgImNvbHVtbk5hbWVzIjogWwogICAgICAgICAgICAiaWQiCiAgICAgICAgICBdLAogICAgICAgICAgImF1dG9HZW5lcmF0ZSI6IGZhbHNlCiAgICAgICAgfSwKICAgICAgICAiaW5kaWNlcyI6IFtdLAogICAgICAgICJmb3JlaWduS2V5cyI6IFtdCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidGFibGVOYW1lIjogIk1lc3NhZ2VSZWNpcGllbnQiLAogICAgICAgICJjcmVhdGVTcWwiOiAiQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgYCR7VEFCTEVfTkFNRX1gIChgbWVzc2FnZUlkYCBURVhUIE5PVCBOVUxMLCBgcGhvbmVOdW1iZXJgIFRFWFQgTk9UIE5VTEwsIGBzdGF0ZWAgVEVYVCBOT1QgTlVMTCwgUFJJTUFSWSBLRVkoYG1lc3NhZ2VJZGAsIGBwaG9uZU51bWJlcmApLCBGT1JFSUdOIEtFWShgbWVzc2FnZUlkYCkgUkVGRVJFTkNFUyBgTWVzc2FnZWAoYGlkYCkgT04gVVBEQVRFIE5PIEFDVElPTiBPTiBERUxFVEUgQ0FTQ0FERSApIiwKICAgICAgICAiZmllbGRzIjogWwogICAgICAgICAgewogICAgICAgICAgICAiZmllbGRQYXRoIjogIm1lc3NhZ2VJZCIsCiAgICAgICAgICAgICJjb2x1bW5OYW1lIjogIm1lc3NhZ2VJZCIsCiAgICAgICAgICAgICJhZmZpbml0eSI6ICJURVhUIiwKICAgICAgICAgICAgIm5vdE51bGwiOiB0cnVlCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZmllbGRQYXRoIjogInBob25lTnVtYmVyIiwKICAgICAgICAgICAgImNvbHVtbk5hbWUiOiAicGhvbmVOdW1iZXIiLAogICAgICAgICAgICAiYWZmaW5pdHkiOiAiVEVYVCIsCiAgICAgICAgICAgICJub3ROdWxsIjogdHJ1ZQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImZpZWxkUGF0aCI6ICJzdGF0ZSIsCiAgICAgICAgICAgICJjb2x1bW5OYW1lIjogInN0YXRlIiwKICAgICAgICAgICAgImFmZmluaXR5IjogIlRFWFQiLAogICAgICAgICAgICAibm90TnVsbCI6IHRydWUKICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwcmltYXJ5S2V5IjogewogICAgICAgICAgImNvbHVtbk5hbWVzIjogWwogICAgICAgICAgICAibWVzc2FnZUlkIiwKICAgICAgICAgICAgInBob25lTnVtYmVyIgogICAgICAgICAgXSwKICAgICAgICAgICJhdXRvR2VuZXJhdGUiOiBmYWxzZQogICAgICAgIH0sCiAgICAgICAgImluZGljZXMiOiBbXSwKICAgICAgICAiZm9yZWlnbktleXMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJ0YWJsZSI6ICJNZXNzYWdlIiwKICAgICAgICAgICAgIm9uRGVsZXRlIjogIkNBU0NBREUiLAogICAgICAgICAgICAib25VcGRhdGUiOiAiTk8gQUNUSU9OIiwKICAgICAgICAgICAgImNvbHVtbnMiOiBbCiAgICAgICAgICAgICAgIm1lc3NhZ2VJZCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgInJlZmVyZW5jZWRDb2x1bW5zIjogWwogICAgICAgICAgICAgICJpZCIKICAgICAgICAgICAgXQogICAgICAgICAgfQogICAgICAgIF0KICAgICAgfQogICAgXSwKICAgICJ2aWV3cyI6IFtdLAogICAgInNldHVwUXVlcmllcyI6IFsKICAgICAgIkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIHJvb21fbWFzdGVyX3RhYmxlIChpZCBJTlRFR0VSIFBSSU1BUlkgS0VZLGlkZW50aXR5X2hhc2ggVEVYVCkiLAogICAgICAiSU5TRVJUIE9SIFJFUExBQ0UgSU5UTyByb29tX21hc3Rlcl90YWJsZSAoaWQsaWRlbnRpdHlfaGFzaCkgVkFMVUVTKDQyLCAnMWMzYzMyNDZlYTBmMzY4ZWM5NWI3NDBiMmY1MGUxOGInKSIKICAgIF0KICB9Cn0=
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
ewogICJmb3JtYXRWZXJzaW9uIjogMSwKICAiZGF0YWJhc2UiOiB7CiAgICAidmVyc2lvbiI6IDMsCiAgICAiaWRlbnRpdHlIYXNoIjogIjg5YjRkMTE0MmE5Yzc3ZWZmYmIyMzQ4NzlmNGI1NDBhIiwKICAgICJlbnRpdGllcyI6IFsKICAgICAgewogICAgICAgICJ0YWJsZU5hbWUiOiAiTWVzc2FnZSIsCiAgICAgICAgImNyZWF0ZVNxbCI6ICJDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBgJHtUQUJMRV9OQU1FfWAgKGBpZGAgVEVYVCBOT1QgTlVMTCwgYHRleHRgIFRFWFQgTk9UIE5VTEwsIGBzb3VyY2VgIFRFWFQgTk9UIE5VTEwgREVGQVVMVCAnTG9jYWwnLCBgc3RhdGVgIFRFWFQgTk9UIE5VTEwsIGBjcmVhdGVkQXRgIElOVEVHRVIgTk9UIE5VTEwgREVGQVVMVCAwLCBQUklNQVJZIEtFWShgaWRgKSkiLAogICAgICAgICJmaWVsZHMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJmaWVsZFBhdGgiOiAiaWQiLAogICAgICAgICAgICAiY29sdW1uTmFtZSI6ICJpZCIsCiAgICAgICAgICAgICJhZmZpbml0eSI6ICJURVhUIiwKICAgICAgICAgICAgIm5vdE51bGwiOiB0cnVlCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZmllbGRQYXRoIjogInRleHQiLAogICAgICAgICAgICAiY29sdW1uTmFtZSI6ICJ0ZXh0IiwKICAgICAgICAgICAgImFmZmluaXR5IjogIlRFWFQiLAogICAgICAgICAgICAibm90TnVsbCI6IHRydWUKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJmaWVsZFBhdGgiOiAic291cmNlIiwKICAgICAgICAgICAgImNvbHVtbk5hbWUiOiAic291cmNlIiwKICAgICAgICAgICAgImFmZmluaXR5IjogIlRFWFQiLAogICAgICAgICAgICAibm90TnVsbCI6IHRydWUsCiAgICAgICAgICAgICJkZWZhdWx0VmFsdWUiOiAiJ0xvY2FsJyIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJmaWVsZFBhdGgiOiAic3RhdGUiLAogICAgICAgICAgICAiY29sdW1uTmFtZSI6ICJzdGF0ZSIsCiAgICAgICAgICAgICJhZmZpbml0eSI6ICJURVhUIiwKICAgICAgICAgICAgIm5vdE51bGwiOiB0cnVlCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZmllbGRQYXRoIjogImNyZWF0ZWRBdCIsCiAgICAgICAgICAgICJjb2x1bW5OYW1lIjogImNyZWF0ZWRBdCIsCiAgICAgICAgICAgICJhZmZpbml0eSI6ICJJTlRFR0VSIiwKICAgICAgICAgICAgIm5vdE51bGwiOiB0cnVlLAogICAgICAgICAgICAiZGVmYXVsdFZhbHVlIjogIjAiCiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicHJpbWFyeUtleSI6IHsKICAgICAgICAgICJjb2x1bW5OYW1lcyI6IFsKICAgICAgICAgICAgImlkIgogICAgICAgICAgXSwKICAgICAgICAgICJhdXRvR2VuZXJhdGUiOiBmYWxzZQogICAgICAgIH0sCiAgICAgICAgImluZGljZXMiOiBbXSwKICAgICAgICAiZm9yZWlnbktleXMiOiBbXQogICAgICB9LAogICAgICB7CiAgICAgICAgInRhYmxlTmFtZSI6ICJNZXNzYWdlUmVjaXBpZW50IiwKICAgICAgICAiY3JlYXRlU3FsIjogIkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIGAke1RBQkxFX05BTUV9YCAoYG1lc3NhZ2VJZGAgVEVYVCBOT1QgTlVMTCwgYHBob25lTnVtYmVyYCBURVhUIE5PVCBOVUxMLCBgc3RhdGVgIFRFWFQgTk9UIE5VTEwsIFBSSU1BUlkgS0VZKGBtZXNzYWdlSWRgLCBgcGhvbmVOdW1iZXJgKSwgRk9SRUlHTiBLRVkoYG1lc3NhZ2VJZGApIFJFRkVSRU5DRVMgYE1lc3NhZ2VgKGBpZGApIE9OIFVQREFURSBOTyBBQ1RJT04gT04gREVMRVRFIENBU0NBREUgKSIsCiAgICAgICAgImZpZWxkcyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImZpZWxkUGF0aCI6ICJtZXNzYWdlSWQiLAogICAgICAgICAgICAiY29sdW1uTmFtZSI6ICJtZXNzYWdlSWQiLAogICAgICAgICAgICAiYWZmaW5pdHkiOiAiVEVYVCIsCiAgICAgICAgICAgICJub3ROdWxsIjogdHJ1ZQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImZpZWxkUGF0aCI6ICJwaG9uZU51bWJlciIsCiAgICAgICAgICAgICJjb2x1bW5OYW1lIjogInBob25lTnVtYmVyIiwKICAgICAgICAgICAgImFmZmluaXR5IjogIlRFWFQiLAogICAgICAgICAgICAibm90TnVsbCI6IHRydWUKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJmaWVsZFBhdGgiOiAic3RhdGUiLAogICAgICAgICAgICAiY29sdW1uTmFtZSI6ICJzdGF0ZSIsCiAgICAgICAgICAgICJhZmZpbml0eSI6ICJURVhUIiwKICAgICAgICAgICAgIm5vdE51bGwiOiB0cnVlCiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicHJpbWFyeUtleSI6IHsKICAgICAgICAgICJjb2x1bW5OYW1lcyI6IFsKICAgICAgICAgICAgIm1lc3NhZ2VJZCIsCiAgICAgICAgICAgICJwaG9uZU51bWJlciIKICAgICAgICAgIF0sCiAgICAgICAgICAiYXV0b0dlbmVyYXRlIjogZmFsc2UKICAgICAgICB9LAogICAgICAgICJpbmRpY2VzIjogW10sCiAgICAgICAgImZvcmVpZ25LZXlzIjogWwogICAgICAgICAgewogICAgICAgICAgICAidGFibGUiOiAiTWVzc2FnZSIsCiAgICAgICAgICAgICJvbkRlbGV0ZSI6ICJDQVNDQURFIiwKICAgICAgICAgICAgIm9uVXBkYXRlIjogIk5PIEFDVElPTiIsCiAgICAgICAgICAgICJjb2x1bW5zIjogWwogICAgICAgICAgICAgICJtZXNzYWdlSWQiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJyZWZlcmVuY2VkQ29sdW1ucyI6IFsKICAgICAgICAgICAgICAiaWQiCiAgICAgICAgICAgIF0KICAgICAgICAgIH0KICAgICAgICBdCiAgICAgIH0KICAgIF0sCiAgICAidmlld3MiOiBbXSwKICAgICJzZXR1cFF1ZXJpZXMiOiBbCiAgICAgICJDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyByb29tX21hc3Rlcl90YWJsZSAoaWQgSU5URUdFUiBQUklNQVJZIEtFWSxpZGVudGl0eV9oYXNoIFRFWFQpIiwKICAgICAgIklOU0VSVCBPUiBSRVBMQUNFIElOVE8gcm9vbV9tYXN0ZXJfdGFibGUgKGlkLGlkZW50aXR5X2hhc2gpIFZBTFVFUyg0MiwgJzg5YjRkMTE0MmE5Yzc3ZWZmYmIyMzQ4NzlmNGI1NDBhJykiCiAgICBdCiAgfQp9
@@ -0,0 +1 @@
ewogICJmb3JtYXRWZXJzaW9uIjogMSwKICAiZGF0YWJhc2UiOiB7CiAgICAidmVyc2lvbiI6IDQsCiAgICAiaWRlbnRpdHlIYXNoIjogImU0YTA0NTBhZTJiODA2YjUyYmZiY2QyNDU2NTAxYTFkIiwKICAgICJlbnRpdGllcyI6IFsKICAgICAgewogICAgICAgICJ0YWJsZU5hbWUiOiAiTWVzc2FnZSIsCiAgICAgICAgImNyZWF0ZVNxbCI6ICJDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBgJHtUQUJMRV9OQU1FfWAgKGBpZGAgVEVYVCBOT1QgTlVMTCwgYHRleHRgIFRFWFQgTk9UIE5VTEwsIGBzb3VyY2VgIFRFWFQgTk9UIE5VTEwgREVGQVVMVCAnTG9jYWwnLCBgc3RhdGVgIFRFWFQgTk9UIE5VTEwsIGBjcmVhdGVkQXRgIElOVEVHRVIgTk9UIE5VTEwgREVGQVVMVCAwLCBQUklNQVJZIEtFWShgaWRgKSkiLAogICAgICAgICJmaWVsZHMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJmaWVsZFBhdGgiOiAiaWQiLAogICAgICAgICAgICAiY29sdW1uTmFtZSI6ICJpZCIsCiAgICAgICAgICAgICJhZmZpbml0eSI6ICJURVhUIiwKICAgICAgICAgICAgIm5vdE51bGwiOiB0cnVlCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZmllbGRQYXRoIjogInRleHQiLAogICAgICAgICAgICAiY29sdW1uTmFtZSI6ICJ0ZXh0IiwKICAgICAgICAgICAgImFmZmluaXR5IjogIlRFWFQiLAogICAgICAgICAgICAibm90TnVsbCI6IHRydWUKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJmaWVsZFBhdGgiOiAic291cmNlIiwKICAgICAgICAgICAgImNvbHVtbk5hbWUiOiAic291cmNlIiwKICAgICAgICAgICAgImFmZmluaXR5IjogIlRFWFQiLAogICAgICAgICAgICAibm90TnVsbCI6IHRydWUsCiAgICAgICAgICAgICJkZWZhdWx0VmFsdWUiOiAiJ0xvY2FsJyIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJmaWVsZFBhdGgiOiAic3RhdGUiLAogICAgICAgICAgICAiY29sdW1uTmFtZSI6ICJzdGF0ZSIsCiAgICAgICAgICAgICJhZmZpbml0eSI6ICJURVhUIiwKICAgICAgICAgICAgIm5vdE51bGwiOiB0cnVlCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZmllbGRQYXRoIjogImNyZWF0ZWRBdCIsCiAgICAgICAgICAgICJjb2x1bW5OYW1lIjogImNyZWF0ZWRBdCIsCiAgICAgICAgICAgICJhZmZpbml0eSI6ICJJTlRFR0VSIiwKICAgICAgICAgICAgIm5vdE51bGwiOiB0cnVlLAogICAgICAgICAgICAiZGVmYXVsdFZhbHVlIjogIjAiCiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicHJpbWFyeUtleSI6IHsKICAgICAgICAgICJjb2x1bW5OYW1lcyI6IFsKICAgICAgICAgICAgImlkIgogICAgICAgICAgXSwKICAgICAgICAgICJhdXRvR2VuZXJhdGUiOiBmYWxzZQogICAgICAgIH0sCiAgICAgICAgImluZGljZXMiOiBbXSwKICAgICAgICAiZm9yZWlnbktleXMiOiBbXQogICAgICB9LAogICAgICB7CiAgICAgICAgInRhYmxlTmFtZSI6ICJNZXNzYWdlUmVjaXBpZW50IiwKICAgICAgICAiY3JlYXRlU3FsIjogIkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIGAke1RBQkxFX05BTUV9YCAoYG1lc3NhZ2VJZGAgVEVYVCBOT1QgTlVMTCwgYHBob25lTnVtYmVyYCBURVhUIE5PVCBOVUxMLCBgc3RhdGVgIFRFWFQgTk9UIE5VTEwsIGBlcnJvcmAgVEVYVCwgUFJJTUFSWSBLRVkoYG1lc3NhZ2VJZGAsIGBwaG9uZU51bWJlcmApLCBGT1JFSUdOIEtFWShgbWVzc2FnZUlkYCkgUkVGRVJFTkNFUyBgTWVzc2FnZWAoYGlkYCkgT04gVVBEQVRFIE5PIEFDVElPTiBPTiBERUxFVEUgQ0FTQ0FERSApIiwKICAgICAgICAiZmllbGRzIjogWwogICAgICAgICAgewogICAgICAgICAgICAiZmllbGRQYXRoIjogIm1lc3NhZ2VJZCIsCiAgICAgICAgICAgICJjb2x1bW5OYW1lIjogIm1lc3NhZ2VJZCIsCiAgICAgICAgICAgICJhZmZpbml0eSI6ICJURVhUIiwKICAgICAgICAgICAgIm5vdE51bGwiOiB0cnVlCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZmllbGRQYXRoIjogInBob25lTnVtYmVyIiwKICAgICAgICAgICAgImNvbHVtbk5hbWUiOiAicGhvbmVOdW1iZXIiLAogICAgICAgICAgICAiYWZmaW5pdHkiOiAiVEVYVCIsCiAgICAgICAgICAgICJub3ROdWxsIjogdHJ1ZQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImZpZWxkUGF0aCI6ICJzdGF0ZSIsCiAgICAgICAgICAgICJjb2x1bW5OYW1lIjogInN0YXRlIiwKICAgICAgICAgICAgImFmZmluaXR5IjogIlRFWFQiLAogICAgICAgICAgICAibm90TnVsbCI6IHRydWUKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJmaWVsZFBhdGgiOiAiZXJyb3IiLAogICAgICAgICAgICAiY29sdW1uTmFtZSI6ICJlcnJvciIsCiAgICAgICAgICAgICJhZmZpbml0eSI6ICJURVhUIiwKICAgICAgICAgICAgIm5vdE51bGwiOiBmYWxzZQogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInByaW1hcnlLZXkiOiB7CiAgICAgICAgICAiY29sdW1uTmFtZXMiOiBbCiAgICAgICAgICAgICJtZXNzYWdlSWQiLAogICAgICAgICAgICAicGhvbmVOdW1iZXIiCiAgICAgICAgICBdLAogICAgICAgICAgImF1dG9HZW5lcmF0ZSI6IGZhbHNlCiAgICAgICAgfSwKICAgICAgICAiaW5kaWNlcyI6IFtdLAogICAgICAgICJmb3JlaWduS2V5cyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgInRhYmxlIjogIk1lc3NhZ2UiLAogICAgICAgICAgICAib25EZWxldGUiOiAiQ0FTQ0FERSIsCiAgICAgICAgICAgICJvblVwZGF0ZSI6ICJOTyBBQ1RJT04iLAogICAgICAgICAgICAiY29sdW1ucyI6IFsKICAgICAgICAgICAgICAibWVzc2FnZUlkIgogICAgICAgICAgICBdLAogICAgICAgICAgICAicmVmZXJlbmNlZENvbHVtbnMiOiBbCiAgICAgICAgICAgICAgImlkIgogICAgICAgICAgICBdCiAgICAgICAgICB9CiAgICAgICAgXQogICAgICB9CiAgICBdLAogICAgInZpZXdzIjogW10sCiAgICAic2V0dXBRdWVyaWVzIjogWwogICAgICAiQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgcm9vbV9tYXN0ZXJfdGFibGUgKGlkIElOVEVHRVIgUFJJTUFSWSBLRVksaWRlbnRpdHlfaGFzaCBURVhUKSIsCiAgICAgICJJTlNFUlQgT1IgUkVQTEFDRSBJTlRPIHJvb21fbWFzdGVyX3RhYmxlIChpZCxpZGVudGl0eV9oYXNoKSBWQUxVRVMoNDIsICdlNGEwNDUwYWUyYjgwNmI1MmJmYmNkMjQ1NjUwMWExZCcpIgogICAgXQogIH0KfQ==
@@ -0,0 +1 @@
ewogICJmb3JtYXRWZXJzaW9uIjogMSwKICAiZGF0YWJhc2UiOiB7CiAgICAidmVyc2lvbiI6IDUsCiAgICAiaWRlbnRpdHlIYXNoIjogIjRhODYyNjNiOWJiNmE3MzYyNzFjYzY2YzZmYWNhMjU0IiwKICAgICJlbnRpdGllcyI6IFsKICAgICAgewogICAgICAgICJ0YWJsZU5hbWUiOiAiTWVzc2FnZSIsCiAgICAgICAgImNyZWF0ZVNxbCI6ICJDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBgJHtUQUJMRV9OQU1FfWAgKGBpZGAgVEVYVCBOT1QgTlVMTCwgYHRleHRgIFRFWFQgTk9UIE5VTEwsIGBzb3VyY2VgIFRFWFQgTk9UIE5VTEwgREVGQVVMVCAnTG9jYWwnLCBgc3RhdGVgIFRFWFQgTk9UIE5VTEwsIGBpc0VuY3J5cHRlZGAgSU5URUdFUiBOT1QgTlVMTCBERUZBVUxUIDAsIGBjcmVhdGVkQXRgIElOVEVHRVIgTk9UIE5VTEwgREVGQVVMVCAwLCBQUklNQVJZIEtFWShgaWRgKSkiLAogICAgICAgICJmaWVsZHMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJmaWVsZFBhdGgiOiAiaWQiLAogICAgICAgICAgICAiY29sdW1uTmFtZSI6ICJpZCIsCiAgICAgICAgICAgICJhZmZpbml0eSI6ICJURVhUIiwKICAgICAgICAgICAgIm5vdE51bGwiOiB0cnVlCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZmllbGRQYXRoIjogInRleHQiLAogICAgICAgICAgICAiY29sdW1uTmFtZSI6ICJ0ZXh0IiwKICAgICAgICAgICAgImFmZmluaXR5IjogIlRFWFQiLAogICAgICAgICAgICAibm90TnVsbCI6IHRydWUKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJmaWVsZFBhdGgiOiAic291cmNlIiwKICAgICAgICAgICAgImNvbHVtbk5hbWUiOiAic291cmNlIiwKICAgICAgICAgICAgImFmZmluaXR5IjogIlRFWFQiLAogICAgICAgICAgICAibm90TnVsbCI6IHRydWUsCiAgICAgICAgICAgICJkZWZhdWx0VmFsdWUiOiAiJ0xvY2FsJyIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJmaWVsZFBhdGgiOiAic3RhdGUiLAogICAgICAgICAgICAiY29sdW1uTmFtZSI6ICJzdGF0ZSIsCiAgICAgICAgICAgICJhZmZpbml0eSI6ICJURVhUIiwKICAgICAgICAgICAgIm5vdE51bGwiOiB0cnVlCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZmllbGRQYXRoIjogImlzRW5jcnlwdGVkIiwKICAgICAgICAgICAgImNvbHVtbk5hbWUiOiAiaXNFbmNyeXB0ZWQiLAogICAgICAgICAgICAiYWZmaW5pdHkiOiAiSU5URUdFUiIsCiAgICAgICAgICAgICJub3ROdWxsIjogdHJ1ZSwKICAgICAgICAgICAgImRlZmF1bHRWYWx1ZSI6ICIwIgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImZpZWxkUGF0aCI6ICJjcmVhdGVkQXQiLAogICAgICAgICAgICAiY29sdW1uTmFtZSI6ICJjcmVhdGVkQXQiLAogICAgICAgICAgICAiYWZmaW5pdHkiOiAiSU5URUdFUiIsCiAgICAgICAgICAgICJub3ROdWxsIjogdHJ1ZSwKICAgICAgICAgICAgImRlZmF1bHRWYWx1ZSI6ICIwIgogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInByaW1hcnlLZXkiOiB7CiAgICAgICAgICAiY29sdW1uTmFtZXMiOiBbCiAgICAgICAgICAgICJpZCIKICAgICAgICAgIF0sCiAgICAgICAgICAiYXV0b0dlbmVyYXRlIjogZmFsc2UKICAgICAgICB9LAogICAgICAgICJpbmRpY2VzIjogW10sCiAgICAgICAgImZvcmVpZ25LZXlzIjogW10KICAgICAgfSwKICAgICAgewogICAgICAgICJ0YWJsZU5hbWUiOiAiTWVzc2FnZVJlY2lwaWVudCIsCiAgICAgICAgImNyZWF0ZVNxbCI6ICJDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBgJHtUQUJMRV9OQU1FfWAgKGBtZXNzYWdlSWRgIFRFWFQgTk9UIE5VTEwsIGBwaG9uZU51bWJlcmAgVEVYVCBOT1QgTlVMTCwgYHN0YXRlYCBURVhUIE5PVCBOVUxMLCBgZXJyb3JgIFRFWFQsIFBSSU1BUlkgS0VZKGBtZXNzYWdlSWRgLCBgcGhvbmVOdW1iZXJgKSwgRk9SRUlHTiBLRVkoYG1lc3NhZ2VJZGApIFJFRkVSRU5DRVMgYE1lc3NhZ2VgKGBpZGApIE9OIFVQREFURSBOTyBBQ1RJT04gT04gREVMRVRFIENBU0NBREUgKSIsCiAgICAgICAgImZpZWxkcyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImZpZWxkUGF0aCI6ICJtZXNzYWdlSWQiLAogICAgICAgICAgICAiY29sdW1uTmFtZSI6ICJtZXNzYWdlSWQiLAogICAgICAgICAgICAiYWZmaW5pdHkiOiAiVEVYVCIsCiAgICAgICAgICAgICJub3ROdWxsIjogdHJ1ZQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImZpZWxkUGF0aCI6ICJwaG9uZU51bWJlciIsCiAgICAgICAgICAgICJjb2x1bW5OYW1lIjogInBob25lTnVtYmVyIiwKICAgICAgICAgICAgImFmZmluaXR5IjogIlRFWFQiLAogICAgICAgICAgICAibm90TnVsbCI6IHRydWUKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJmaWVsZFBhdGgiOiAic3RhdGUiLAogICAgICAgICAgICAiY29sdW1uTmFtZSI6ICJzdGF0ZSIsCiAgICAgICAgICAgICJhZmZpbml0eSI6ICJURVhUIiwKICAgICAgICAgICAgIm5vdE51bGwiOiB0cnVlCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZmllbGRQYXRoIjogImVycm9yIiwKICAgICAgICAgICAgImNvbHVtbk5hbWUiOiAiZXJyb3IiLAogICAgICAgICAgICAiYWZmaW5pdHkiOiAiVEVYVCIsCiAgICAgICAgICAgICJub3ROdWxsIjogZmFsc2UKICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwcmltYXJ5S2V5IjogewogICAgICAgICAgImNvbHVtbk5hbWVzIjogWwogICAgICAgICAgICAibWVzc2FnZUlkIiwKICAgICAgICAgICAgInBob25lTnVtYmVyIgogICAgICAgICAgXSwKICAgICAgICAgICJhdXRvR2VuZXJhdGUiOiBmYWxzZQogICAgICAgIH0sCiAgICAgICAgImluZGljZXMiOiBbXSwKICAgICAgICAiZm9yZWlnbktleXMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJ0YWJsZSI6ICJNZXNzYWdlIiwKICAgICAgICAgICAgIm9uRGVsZXRlIjogIkNBU0NBREUiLAogICAgICAgICAgICAib25VcGRhdGUiOiAiTk8gQUNUSU9OIiwKICAgICAgICAgICAgImNvbHVtbnMiOiBbCiAgICAgICAgICAgICAgIm1lc3NhZ2VJZCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgInJlZmVyZW5jZWRDb2x1bW5zIjogWwogICAgICAgICAgICAgICJpZCIKICAgICAgICAgICAgXQogICAgICAgICAgfQogICAgICAgIF0KICAgICAgfQogICAgXSwKICAgICJ2aWV3cyI6IFtdLAogICAgInNldHVwUXVlcmllcyI6IFsKICAgICAgIkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIHJvb21fbWFzdGVyX3RhYmxlIChpZCBJTlRFR0VSIFBSSU1BUlkgS0VZLGlkZW50aXR5X2hhc2ggVEVYVCkiLAogICAgICAiSU5TRVJUIE9SIFJFUExBQ0UgSU5UTyByb29tX21hc3Rlcl90YWJsZSAoaWQsaWRlbnRpdHlfaGFzaCkgVkFMVUVTKDQyLCAnNGE4NjI2M2I5YmI2YTczNjI3MWNjNjZjNmZhY2EyNTQnKSIKICAgIF0KICB9Cn0=
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
package me.capcom.smsgateway
package pt.whatsms.gateway
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
@@ -17,6 +17,6 @@ class ExampleInstrumentedTest {
fun useAppContext() {
// Context of the app under test.
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
assertEquals("me.capcom.smsgateway", appContext.packageName)
assertEquals("pt.whatsms.gateway", appContext.packageName)
}
}
+7 -2
View File
@@ -7,6 +7,7 @@
android:required="false" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE" />
@@ -55,8 +56,8 @@
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="me.capcom.smsgateway.ACTION_SENT" />
<action android:name="me.capcom.smsgateway.ACTION_DELIVERED" />
<action android:name="pt.whatsms.gateway.ACTION_SENT" />
<action android:name="pt.whatsms.gateway.ACTION_DELIVERED" />
</intent-filter>
</receiver>
<receiver
@@ -84,6 +85,10 @@
android:foregroundServiceType="dataSync"
tools:node="merge" />
<activity
android:name=".ui.ScanPairingActivity"
android:exported="false" />
<activity
android:name=".MainActivity"
android:exported="true">
@@ -1,31 +0,0 @@
package me.capcom.smsgateway.data.entities
import androidx.room.ColumnInfo
import androidx.room.Embedded
import androidx.room.Relation
data class MessageWithRecipients(
@Embedded val message: Message,
@Relation(
parentColumn = "id",
entityColumn = "messageId",
)
val recipients: List<MessageRecipient>,
@Relation(
parentColumn = "id",
entityColumn = "messageId",
)
val states: List<MessageState> = emptyList(),
@ColumnInfo(name = "rowid")
val rowId: Long = 0,
) {
val state: me.capcom.smsgateway.domain.ProcessingState
get() = when {
recipients.any { it.state == me.capcom.smsgateway.domain.ProcessingState.Pending } -> me.capcom.smsgateway.domain.ProcessingState.Pending
recipients.any { it.state == me.capcom.smsgateway.domain.ProcessingState.Processed } -> me.capcom.smsgateway.domain.ProcessingState.Processed
recipients.all { it.state == me.capcom.smsgateway.domain.ProcessingState.Failed } -> me.capcom.smsgateway.domain.ProcessingState.Failed
recipients.all { it.state == me.capcom.smsgateway.domain.ProcessingState.Delivered } -> me.capcom.smsgateway.domain.ProcessingState.Delivered
else -> me.capcom.smsgateway.domain.ProcessingState.Sent
}
}
@@ -1,5 +0,0 @@
package me.capcom.smsgateway.modules.localserver.domain.messages
data class HashedMessage(
val hash: String,
)
@@ -1,5 +0,0 @@
package me.capcom.smsgateway.modules.localserver.domain.messages
data class TextMessage(
val text: String,
)
@@ -1,12 +0,0 @@
package me.capcom.smsgateway.modules.ping.events
import me.capcom.smsgateway.domain.HealthResponse
import me.capcom.smsgateway.modules.events.AppEvent
class PingEvent(
val health: HealthResponse,
) : AppEvent(TYPE) {
companion object {
const val TYPE = "PingEvent"
}
}
@@ -1,12 +0,0 @@
package me.capcom.smsgateway.ui.styles
import android.graphics.Color
val me.capcom.smsgateway.domain.ProcessingState.color: Int
get() = when (this) {
me.capcom.smsgateway.domain.ProcessingState.Pending -> Color.parseColor("#FFBB86FC")
me.capcom.smsgateway.domain.ProcessingState.Processed -> Color.parseColor("#FF6200EE")
me.capcom.smsgateway.domain.ProcessingState.Sent -> Color.parseColor("#FF3700B3")
me.capcom.smsgateway.domain.ProcessingState.Delivered -> Color.parseColor("#FF03DAC5")
me.capcom.smsgateway.domain.ProcessingState.Failed -> Color.parseColor("#FF018786")
}
@@ -1,24 +1,24 @@
package me.capcom.smsgateway
package pt.whatsms.gateway
import android.app.Application
import healthModule
import me.capcom.smsgateway.data.dbModule
import me.capcom.smsgateway.modules.connection.connectionModule
import me.capcom.smsgateway.modules.encryption.encryptionModule
import me.capcom.smsgateway.modules.events.eventBusModule
import me.capcom.smsgateway.modules.gateway.GatewayService
import me.capcom.smsgateway.modules.incoming.incomingModule
import me.capcom.smsgateway.modules.localserver.localserverModule
import me.capcom.smsgateway.modules.logs.logsModule
import me.capcom.smsgateway.modules.messages.messagesModule
import me.capcom.smsgateway.modules.notifications.notificationsModule
import me.capcom.smsgateway.modules.orchestrator.OrchestratorService
import me.capcom.smsgateway.modules.orchestrator.orchestratorModule
import me.capcom.smsgateway.modules.ping.pingModule
import me.capcom.smsgateway.modules.receiver.receiverModule
import me.capcom.smsgateway.modules.settings.settingsModule
import me.capcom.smsgateway.modules.webhooks.webhooksModule
import me.capcom.smsgateway.receivers.EventsReceiver
import pt.whatsms.gateway.data.dbModule
import pt.whatsms.gateway.modules.connection.connectionModule
import pt.whatsms.gateway.modules.encryption.encryptionModule
import pt.whatsms.gateway.modules.events.eventBusModule
import pt.whatsms.gateway.modules.gateway.GatewayService
import pt.whatsms.gateway.modules.incoming.incomingModule
import pt.whatsms.gateway.modules.localserver.localserverModule
import pt.whatsms.gateway.modules.logs.logsModule
import pt.whatsms.gateway.modules.messages.messagesModule
import pt.whatsms.gateway.modules.notifications.notificationsModule
import pt.whatsms.gateway.modules.orchestrator.OrchestratorService
import pt.whatsms.gateway.modules.orchestrator.orchestratorModule
import pt.whatsms.gateway.modules.ping.pingModule
import pt.whatsms.gateway.modules.receiver.receiverModule
import pt.whatsms.gateway.modules.settings.settingsModule
import pt.whatsms.gateway.modules.webhooks.webhooksModule
import pt.whatsms.gateway.receivers.EventsReceiver
import org.koin.android.ext.android.get
import org.koin.android.ext.android.inject
import org.koin.android.ext.koin.androidContext
@@ -42,7 +42,7 @@ class App: Application() {
incomingModule,
receiverModule,
encryptionModule,
me.capcom.smsgateway.modules.gateway.gatewayModule,
pt.whatsms.gateway.modules.gateway.gatewayModule,
healthModule,
webhooksModule,
localserverModule,
@@ -1,8 +1,8 @@
package me.capcom.smsgateway
package pt.whatsms.gateway
import android.util.Log
import me.capcom.smsgateway.modules.logs.LogsService
import me.capcom.smsgateway.modules.logs.db.LogEntry
import pt.whatsms.gateway.modules.logs.LogsService
import pt.whatsms.gateway.modules.logs.db.LogEntry
import org.koin.core.component.KoinComponent
import java.lang.Thread.UncaughtExceptionHandler
@@ -1,4 +1,4 @@
package me.capcom.smsgateway
package pt.whatsms.gateway
import android.content.Context
import android.content.Intent
@@ -6,10 +6,10 @@ import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment
import com.google.android.material.tabs.TabLayoutMediator
import me.capcom.smsgateway.databinding.ActivityMainBinding
import me.capcom.smsgateway.ui.HolderFragment
import me.capcom.smsgateway.ui.HomeFragment
import me.capcom.smsgateway.ui.SettingsFragment
import pt.whatsms.gateway.databinding.ActivityMainBinding
import pt.whatsms.gateway.ui.HolderFragment
import pt.whatsms.gateway.ui.HomeFragment
import pt.whatsms.gateway.ui.SettingsFragment
class MainActivity : AppCompatActivity() {
@@ -1,25 +1,25 @@
package me.capcom.smsgateway.data
package pt.whatsms.gateway.data
import androidx.room.AutoMigration
import androidx.room.Database
import androidx.room.Room
import androidx.room.RoomDatabase
import androidx.room.TypeConverters
import me.capcom.smsgateway.data.dao.MessagesDao
import me.capcom.smsgateway.data.dao.TokensDao
import me.capcom.smsgateway.data.entities.Message
import me.capcom.smsgateway.data.entities.MessageRecipient
import me.capcom.smsgateway.data.entities.MessageState
import me.capcom.smsgateway.data.entities.RecipientState
import me.capcom.smsgateway.data.entities.Token
import me.capcom.smsgateway.modules.incoming.db.IncomingMessage
import me.capcom.smsgateway.modules.incoming.db.IncomingMessagesDao
import me.capcom.smsgateway.modules.logs.db.LogEntriesDao
import me.capcom.smsgateway.modules.logs.db.LogEntry
import me.capcom.smsgateway.modules.webhooks.db.WebHook
import me.capcom.smsgateway.modules.webhooks.db.WebHooksDao
import me.capcom.smsgateway.modules.webhooks.db.WebhookQueueDao
import me.capcom.smsgateway.modules.webhooks.db.WebhookQueueEntity
import pt.whatsms.gateway.data.dao.MessagesDao
import pt.whatsms.gateway.data.dao.TokensDao
import pt.whatsms.gateway.data.entities.Message
import pt.whatsms.gateway.data.entities.MessageRecipient
import pt.whatsms.gateway.data.entities.MessageState
import pt.whatsms.gateway.data.entities.RecipientState
import pt.whatsms.gateway.data.entities.Token
import pt.whatsms.gateway.modules.incoming.db.IncomingMessage
import pt.whatsms.gateway.modules.incoming.db.IncomingMessagesDao
import pt.whatsms.gateway.modules.logs.db.LogEntriesDao
import pt.whatsms.gateway.modules.logs.db.LogEntry
import pt.whatsms.gateway.modules.webhooks.db.WebHook
import pt.whatsms.gateway.modules.webhooks.db.WebHooksDao
import pt.whatsms.gateway.modules.webhooks.db.WebhookQueueDao
import pt.whatsms.gateway.modules.webhooks.db.WebhookQueueEntity
@Database(
entities = [
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.data
package pt.whatsms.gateway.data
import androidx.room.TypeConverter
import com.google.gson.GsonBuilder
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.data
package pt.whatsms.gateway.data
import androidx.room.migration.Migration
import androidx.sqlite.db.SupportSQLiteDatabase
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.data
package pt.whatsms.gateway.data
import org.koin.dsl.module
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.data.dao
package pt.whatsms.gateway.data.dao
import androidx.lifecycle.LiveData
import androidx.room.Dao
@@ -6,15 +6,15 @@ import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import androidx.room.Transaction
import me.capcom.smsgateway.data.entities.Message
import me.capcom.smsgateway.data.entities.MessageRecipient
import me.capcom.smsgateway.data.entities.MessageState
import me.capcom.smsgateway.data.entities.MessageWithRecipients
import me.capcom.smsgateway.data.entities.MessagesStats
import me.capcom.smsgateway.data.entities.MessagesTotals
import me.capcom.smsgateway.data.entities.RecipientState
import me.capcom.smsgateway.domain.EntitySource
import me.capcom.smsgateway.domain.ProcessingState
import pt.whatsms.gateway.data.entities.Message
import pt.whatsms.gateway.data.entities.MessageRecipient
import pt.whatsms.gateway.data.entities.MessageState
import pt.whatsms.gateway.data.entities.MessageWithRecipients
import pt.whatsms.gateway.data.entities.MessagesStats
import pt.whatsms.gateway.data.entities.MessagesTotals
import pt.whatsms.gateway.data.entities.RecipientState
import pt.whatsms.gateway.domain.EntitySource
import pt.whatsms.gateway.domain.ProcessingState
@Dao
interface MessagesDao {
@@ -100,7 +100,7 @@ interface MessagesDao {
)
fun _insertRecipientStatesByMessage(
messageId: String,
state: me.capcom.smsgateway.domain.ProcessingState
state: pt.whatsms.gateway.domain.ProcessingState
)
@Transaction
@@ -125,9 +125,9 @@ interface MessagesDao {
}
@Query("UPDATE message SET state = :state WHERE id = :id AND state <> 'Failed'")
fun _updateMessageState(id: String, state: me.capcom.smsgateway.domain.ProcessingState)
fun _updateMessageState(id: String, state: pt.whatsms.gateway.domain.ProcessingState)
fun updateMessageState(id: String, state: me.capcom.smsgateway.domain.ProcessingState) {
fun updateMessageState(id: String, state: pt.whatsms.gateway.domain.ProcessingState) {
_updateMessageState(id, state)
_insertMessageState(
MessageState(
@@ -145,7 +145,7 @@ interface MessagesDao {
_insertMessageState(
MessageState(
id,
me.capcom.smsgateway.domain.ProcessingState.Processed,
pt.whatsms.gateway.domain.ProcessingState.Processed,
System.currentTimeMillis()
)
)
@@ -155,7 +155,7 @@ interface MessagesDao {
fun _updateRecipientState(
id: String,
phoneNumber: String,
state: me.capcom.smsgateway.domain.ProcessingState,
state: pt.whatsms.gateway.domain.ProcessingState,
error: String?
)
@@ -163,7 +163,7 @@ interface MessagesDao {
fun updateRecipientState(
id: String,
phoneNumber: String,
state: me.capcom.smsgateway.domain.ProcessingState,
state: pt.whatsms.gateway.domain.ProcessingState,
error: String?
) {
_updateRecipientState(id, phoneNumber, state, error)
@@ -177,14 +177,14 @@ interface MessagesDao {
@Query("UPDATE messagerecipient SET state = :state, error = :error WHERE messageId = :id AND state <> 'Failed'")
fun _updateRecipientsState(
id: String,
state: me.capcom.smsgateway.domain.ProcessingState,
state: pt.whatsms.gateway.domain.ProcessingState,
error: String?
)
@Transaction
fun updateRecipientsState(
id: String,
state: me.capcom.smsgateway.domain.ProcessingState,
state: pt.whatsms.gateway.domain.ProcessingState,
error: String?
) {
_updateRecipientsState(id, state, error)
@@ -1,10 +1,10 @@
package me.capcom.smsgateway.data.dao
package pt.whatsms.gateway.data.dao
import androidx.room.Dao
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import me.capcom.smsgateway.data.entities.Token
import pt.whatsms.gateway.data.entities.Token
@Dao
interface TokensDao {
@@ -1,12 +1,12 @@
package me.capcom.smsgateway.data.entities
package pt.whatsms.gateway.data.entities
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
import com.google.gson.Gson
import me.capcom.smsgateway.domain.EntitySource
import me.capcom.smsgateway.domain.MessageContent
import me.capcom.smsgateway.domain.ProcessingState
import pt.whatsms.gateway.domain.EntitySource
import pt.whatsms.gateway.domain.MessageContent
import pt.whatsms.gateway.domain.ProcessingState
import java.util.Date
enum class MessageType {
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.data.entities
package pt.whatsms.gateway.data.entities
import androidx.room.Entity
import androidx.room.ForeignKey
@@ -12,6 +12,6 @@ import androidx.room.ForeignKey
data class MessageRecipient(
val messageId: String,
val phoneNumber: String,
val state: me.capcom.smsgateway.domain.ProcessingState = me.capcom.smsgateway.domain.ProcessingState.Pending,
val state: pt.whatsms.gateway.domain.ProcessingState = pt.whatsms.gateway.domain.ProcessingState.Pending,
val error: String? = null
)
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.data.entities
package pt.whatsms.gateway.data.entities
import androidx.room.Entity
import androidx.room.ForeignKey
@@ -16,6 +16,6 @@ import androidx.room.ForeignKey
)
data class MessageState(
val messageId: String,
val state: me.capcom.smsgateway.domain.ProcessingState,
val state: pt.whatsms.gateway.domain.ProcessingState,
val updatedAt: Long
)
@@ -0,0 +1,31 @@
package pt.whatsms.gateway.data.entities
import androidx.room.ColumnInfo
import androidx.room.Embedded
import androidx.room.Relation
data class MessageWithRecipients(
@Embedded val message: Message,
@Relation(
parentColumn = "id",
entityColumn = "messageId",
)
val recipients: List<MessageRecipient>,
@Relation(
parentColumn = "id",
entityColumn = "messageId",
)
val states: List<MessageState> = emptyList(),
@ColumnInfo(name = "rowid")
val rowId: Long = 0,
) {
val state: pt.whatsms.gateway.domain.ProcessingState
get() = when {
recipients.any { it.state == pt.whatsms.gateway.domain.ProcessingState.Pending } -> pt.whatsms.gateway.domain.ProcessingState.Pending
recipients.any { it.state == pt.whatsms.gateway.domain.ProcessingState.Processed } -> pt.whatsms.gateway.domain.ProcessingState.Processed
recipients.all { it.state == pt.whatsms.gateway.domain.ProcessingState.Failed } -> pt.whatsms.gateway.domain.ProcessingState.Failed
recipients.all { it.state == pt.whatsms.gateway.domain.ProcessingState.Delivered } -> pt.whatsms.gateway.domain.ProcessingState.Delivered
else -> pt.whatsms.gateway.domain.ProcessingState.Sent
}
}
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.data.entities
package pt.whatsms.gateway.data.entities
data class MessagesStats(
val count: Int,
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.data.entities
package pt.whatsms.gateway.data.entities
data class MessagesTotals(
val total: Long,
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.data.entities
package pt.whatsms.gateway.data.entities
import androidx.room.Entity
import androidx.room.ForeignKey
@@ -17,6 +17,6 @@ import androidx.room.ForeignKey
data class RecipientState(
val messageId: String,
val phoneNumber: String,
val state: me.capcom.smsgateway.domain.ProcessingState,
val state: pt.whatsms.gateway.domain.ProcessingState,
val updatedAt: Long
)
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.data.entities
package pt.whatsms.gateway.data.entities
import androidx.room.Entity
import androidx.room.Index
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.domain
package pt.whatsms.gateway.domain
enum class EntitySource {
Local,
@@ -1,9 +1,9 @@
package me.capcom.smsgateway.domain
package pt.whatsms.gateway.domain
import me.capcom.smsgateway.BuildConfig
import me.capcom.smsgateway.modules.health.domain.CheckResult
import me.capcom.smsgateway.modules.health.domain.HealthResult
import me.capcom.smsgateway.modules.health.domain.Status
import pt.whatsms.gateway.BuildConfig
import pt.whatsms.gateway.modules.health.domain.CheckResult
import pt.whatsms.gateway.modules.health.domain.HealthResult
import pt.whatsms.gateway.modules.health.domain.Status
class HealthResponse(
healthResult: HealthResult,
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.domain
package pt.whatsms.gateway.domain
sealed class MessageContent {
data class Text(val text: String) : MessageContent() {
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.domain
package pt.whatsms.gateway.domain
enum class ProcessingState {
Pending,
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.extensions
package pt.whatsms.gateway.extensions
import android.os.Build
import com.google.gson.GsonBuilder
@@ -1,6 +1,6 @@
package me.capcom.smsgateway.helpers
package pt.whatsms.gateway.helpers
import me.capcom.smsgateway.BuildConfig
import pt.whatsms.gateway.BuildConfig
object BuildHelper {
val isInsecureVersion =
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.helpers
package pt.whatsms.gateway.helpers
import android.os.Build
import java.text.ParseException
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.helpers
package pt.whatsms.gateway.helpers
import com.google.i18n.phonenumbers.PhoneNumberUtil
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.helpers
package pt.whatsms.gateway.helpers
import android.util.Log
import kotlinx.coroutines.CoroutineScope
@@ -1,11 +1,11 @@
package me.capcom.smsgateway.helpers
package pt.whatsms.gateway.helpers
import android.content.ComponentName
import android.content.Context
import android.content.pm.PackageManager
import androidx.core.content.edit
import androidx.preference.PreferenceManager
import me.capcom.smsgateway.receivers.BootReceiver
import pt.whatsms.gateway.receivers.BootReceiver
class SettingsHelper(private val context: Context) {
private val settings = PreferenceManager.getDefaultSharedPreferences(context)
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.helpers
package pt.whatsms.gateway.helpers
import android.Manifest
import android.annotation.SuppressLint
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.modules.connection
package pt.whatsms.gateway.modules.connection
enum class CellularNetworkType {
None,
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.modules.connection
package pt.whatsms.gateway.modules.connection
import android.Manifest
import android.content.Context
@@ -11,10 +11,10 @@ import android.telephony.TelephonyManager
import androidx.core.app.ActivityCompat
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import me.capcom.smsgateway.modules.health.domain.CheckResult
import me.capcom.smsgateway.modules.health.domain.Status
import me.capcom.smsgateway.modules.logs.LogsService
import me.capcom.smsgateway.modules.logs.db.LogEntry
import pt.whatsms.gateway.modules.health.domain.CheckResult
import pt.whatsms.gateway.modules.health.domain.Status
import pt.whatsms.gateway.modules.logs.LogsService
import pt.whatsms.gateway.modules.logs.db.LogEntry
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.modules.connection
package pt.whatsms.gateway.modules.connection
import org.koin.core.module.dsl.singleOf
import org.koin.dsl.module
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.modules.connection
package pt.whatsms.gateway.modules.connection
enum class TransportType(
val value: Int
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.modules.encryption
package pt.whatsms.gateway.modules.encryption
import android.util.Base64
import javax.crypto.Cipher
@@ -1,8 +1,8 @@
package me.capcom.smsgateway.modules.encryption
package pt.whatsms.gateway.modules.encryption
import me.capcom.smsgateway.modules.settings.Importer
import me.capcom.smsgateway.modules.settings.KeyValueStorage
import me.capcom.smsgateway.modules.settings.get
import pt.whatsms.gateway.modules.settings.Importer
import pt.whatsms.gateway.modules.settings.KeyValueStorage
import pt.whatsms.gateway.modules.settings.get
class EncryptionSettings(
private val storage: KeyValueStorage,
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.modules.encryption
package pt.whatsms.gateway.modules.encryption
import org.koin.dsl.module
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.modules.events
package pt.whatsms.gateway.modules.events
open class AppEvent(
@Transient
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.modules.events
package pt.whatsms.gateway.modules.events
import android.util.Log
import kotlinx.coroutines.flow.MutableSharedFlow
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.modules.events
package pt.whatsms.gateway.modules.events
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.modules.events
package pt.whatsms.gateway.modules.events
data class ExternalEvent(
val type: ExternalEventType,
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.modules.events
package pt.whatsms.gateway.modules.events
import com.google.gson.annotations.SerializedName
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.modules.events
package pt.whatsms.gateway.modules.events
import org.koin.dsl.module
@@ -1,22 +1,22 @@
package me.capcom.smsgateway.modules.gateway
package pt.whatsms.gateway.modules.gateway
import android.util.Log
import kotlinx.coroutines.coroutineScope
import kotlinx.coroutines.launch
import me.capcom.smsgateway.domain.EntitySource
import me.capcom.smsgateway.modules.events.EventBus
import me.capcom.smsgateway.modules.events.EventsReceiver
import me.capcom.smsgateway.modules.gateway.events.DeviceRegisteredEvent
import me.capcom.smsgateway.modules.gateway.events.MessageEnqueuedEvent
import me.capcom.smsgateway.modules.gateway.events.SettingsUpdatedEvent
import me.capcom.smsgateway.modules.gateway.events.WebhooksUpdatedEvent
import me.capcom.smsgateway.modules.gateway.services.SSEForegroundService
import me.capcom.smsgateway.modules.gateway.workers.PullMessagesWorker
import me.capcom.smsgateway.modules.gateway.workers.SendStateWorker
import me.capcom.smsgateway.modules.gateway.workers.SettingsUpdateWorker
import me.capcom.smsgateway.modules.gateway.workers.WebhooksUpdateWorker
import me.capcom.smsgateway.modules.messages.events.MessageStateChangedEvent
import me.capcom.smsgateway.modules.ping.events.PingEvent
import pt.whatsms.gateway.domain.EntitySource
import pt.whatsms.gateway.modules.events.EventBus
import pt.whatsms.gateway.modules.events.EventsReceiver
import pt.whatsms.gateway.modules.gateway.events.DeviceRegisteredEvent
import pt.whatsms.gateway.modules.gateway.events.MessageEnqueuedEvent
import pt.whatsms.gateway.modules.gateway.events.SettingsUpdatedEvent
import pt.whatsms.gateway.modules.gateway.events.WebhooksUpdatedEvent
import pt.whatsms.gateway.modules.gateway.services.SSEForegroundService
import pt.whatsms.gateway.modules.gateway.workers.PullMessagesWorker
import pt.whatsms.gateway.modules.gateway.workers.SendStateWorker
import pt.whatsms.gateway.modules.gateway.workers.SettingsUpdateWorker
import pt.whatsms.gateway.modules.gateway.workers.WebhooksUpdateWorker
import pt.whatsms.gateway.modules.messages.events.MessageStateChangedEvent
import pt.whatsms.gateway.modules.ping.events.PingEvent
import org.koin.core.component.get
class EventsReceiver : EventsReceiver() {
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.modules.gateway
package pt.whatsms.gateway.modules.gateway
import com.google.gson.annotations.SerializedName
import io.ktor.client.HttpClient
@@ -20,10 +20,10 @@ import io.ktor.http.contentType
import io.ktor.http.hostWithPort
import io.ktor.serialization.gson.gson
import io.ktor.util.encodeBase64
import me.capcom.smsgateway.BuildConfig
import me.capcom.smsgateway.domain.ProcessingState
import me.capcom.smsgateway.extensions.configure
import me.capcom.smsgateway.modules.webhooks.domain.WebHookEvent
import pt.whatsms.gateway.BuildConfig
import pt.whatsms.gateway.domain.ProcessingState
import pt.whatsms.gateway.extensions.configure
import pt.whatsms.gateway.modules.webhooks.domain.WebHookEvent
import java.util.Date
class GatewayApi(
@@ -35,7 +35,7 @@ class GatewayApi(
private val client = HttpClient(OkHttp) {
install(UserAgent) {
agent = "me.capcom.smsgateway/" + BuildConfig.VERSION_NAME
agent = "pt.whatsms.gateway/" + BuildConfig.VERSION_NAME
}
install(ContentNegotiation) {
gson {
@@ -1,26 +1,26 @@
package me.capcom.smsgateway.modules.gateway
package pt.whatsms.gateway.modules.gateway
import android.content.Context
import android.os.Build
import io.ktor.client.plugins.ClientRequestException
import io.ktor.http.HttpStatusCode
import me.capcom.smsgateway.data.entities.MessageWithRecipients
import me.capcom.smsgateway.domain.EntitySource
import me.capcom.smsgateway.domain.MessageContent
import me.capcom.smsgateway.modules.events.EventBus
import me.capcom.smsgateway.modules.gateway.events.DeviceRegisteredEvent
import me.capcom.smsgateway.modules.gateway.services.SSEForegroundService
import me.capcom.smsgateway.modules.gateway.workers.PullMessagesWorker
import me.capcom.smsgateway.modules.gateway.workers.SendStateWorker
import me.capcom.smsgateway.modules.gateway.workers.SettingsUpdateWorker
import me.capcom.smsgateway.modules.gateway.workers.WebhooksUpdateWorker
import me.capcom.smsgateway.modules.logs.LogsService
import me.capcom.smsgateway.modules.logs.db.LogEntry
import me.capcom.smsgateway.modules.messages.MessagesService
import me.capcom.smsgateway.modules.messages.MessagesSettings
import me.capcom.smsgateway.modules.messages.data.SendParams
import me.capcom.smsgateway.modules.messages.data.SendRequest
import me.capcom.smsgateway.services.PushService
import pt.whatsms.gateway.data.entities.MessageWithRecipients
import pt.whatsms.gateway.domain.EntitySource
import pt.whatsms.gateway.domain.MessageContent
import pt.whatsms.gateway.modules.events.EventBus
import pt.whatsms.gateway.modules.gateway.events.DeviceRegisteredEvent
import pt.whatsms.gateway.modules.gateway.services.SSEForegroundService
import pt.whatsms.gateway.modules.gateway.workers.PullMessagesWorker
import pt.whatsms.gateway.modules.gateway.workers.SendStateWorker
import pt.whatsms.gateway.modules.gateway.workers.SettingsUpdateWorker
import pt.whatsms.gateway.modules.gateway.workers.WebhooksUpdateWorker
import pt.whatsms.gateway.modules.logs.LogsService
import pt.whatsms.gateway.modules.logs.db.LogEntry
import pt.whatsms.gateway.modules.messages.MessagesService
import pt.whatsms.gateway.modules.messages.MessagesSettings
import pt.whatsms.gateway.modules.messages.data.SendParams
import pt.whatsms.gateway.modules.messages.data.SendRequest
import pt.whatsms.gateway.services.PushService
import java.util.Date
class GatewayService(
@@ -224,7 +224,7 @@ class GatewayService(
val request = SendRequest(
EntitySource.Cloud,
me.capcom.smsgateway.modules.messages.data.Message(
pt.whatsms.gateway.modules.messages.data.Message(
message.id,
when (val content = message.content) {
is GatewayApi.MessageContent.Text -> MessageContent.Text(content.text)
@@ -1,9 +1,9 @@
package me.capcom.smsgateway.modules.gateway
package pt.whatsms.gateway.modules.gateway
import me.capcom.smsgateway.modules.settings.Exporter
import me.capcom.smsgateway.modules.settings.Importer
import me.capcom.smsgateway.modules.settings.KeyValueStorage
import me.capcom.smsgateway.modules.settings.get
import pt.whatsms.gateway.modules.settings.Exporter
import pt.whatsms.gateway.modules.settings.Importer
import pt.whatsms.gateway.modules.settings.KeyValueStorage
import pt.whatsms.gateway.modules.settings.get
class GatewaySettings(
private val storage: KeyValueStorage,
@@ -54,9 +54,7 @@ class GatewaySettings(
private const val PRIVATE_TOKEN = "private_token"
private const val NOTIFICATION_CHANNEL = "notification_channel"
const val PUBLIC_URL = "https://api.sms-gate.app/mobile/v1"
// WhatSMS fork: server capcom6 privado da Descomplicar.
// WhatSMS fork: servidor da Descomplicar.
const val WHATSMS_SERVER_URL = "https://smsgw.whatsms.pt/api/mobile/v1"
// WhatSMS fork: private_token do GATEWAY_TOKEN config do server.
@@ -76,7 +74,7 @@ class GatewaySettings(
return data.map {
when (it.key) {
CLOUD_URL -> {
val url = it.value?.toString() ?: PUBLIC_URL
val url = it.value?.toString() ?: WHATSMS_SERVER_URL
if (url != null && !url.startsWith("https://")) {
throw IllegalArgumentException("url must start with https://")
}
@@ -1,4 +1,4 @@
package me.capcom.smsgateway.modules.gateway
package pt.whatsms.gateway.modules.gateway
import org.koin.core.module.dsl.singleOf
import org.koin.dsl.module
@@ -1,6 +1,6 @@
package me.capcom.smsgateway.modules.gateway.events
package pt.whatsms.gateway.modules.gateway.events
import me.capcom.smsgateway.modules.events.AppEvent
import pt.whatsms.gateway.modules.events.AppEvent
sealed class DeviceRegisteredEvent(
val server: String,
@@ -1,6 +1,6 @@
package me.capcom.smsgateway.modules.gateway.events
package pt.whatsms.gateway.modules.gateway.events
import me.capcom.smsgateway.modules.events.AppEvent
import pt.whatsms.gateway.modules.events.AppEvent
class MessageEnqueuedEvent : AppEvent(NAME) {
companion object {
@@ -1,6 +1,6 @@
package me.capcom.smsgateway.modules.gateway.events
package pt.whatsms.gateway.modules.gateway.events
import me.capcom.smsgateway.modules.events.AppEvent
import pt.whatsms.gateway.modules.events.AppEvent
class SettingsUpdatedEvent : AppEvent(NAME) {
@@ -1,6 +1,6 @@
package me.capcom.smsgateway.modules.gateway.events
package pt.whatsms.gateway.modules.gateway.events
import me.capcom.smsgateway.modules.events.AppEvent
import pt.whatsms.gateway.modules.events.AppEvent
class WebhooksUpdatedEvent : AppEvent(NAME) {
companion object {

Some files were not shown because too many files have changed in this diff Show More