@ooneex/typeorm 0.10.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/shared/chunk-0swb1h0m.js +51 -0
- package/dist/shared/{chunk-xwe8m6av.js.map → chunk-0swb1h0m.js.map} +2 -2
- package/dist/shared/chunk-2wdazj26.js +371 -0
- package/dist/shared/{chunk-5tnqjb3n.js.map → chunk-2wdazj26.js.map} +2 -2
- package/dist/shared/chunk-6m3p1ht9.js +606 -0
- package/dist/shared/{chunk-yrwsqc6r.js.map → chunk-6m3p1ht9.js.map} +2 -2
- package/dist/shared/{chunk-qrs0g3m9.js → chunk-6vmvyg0q.js} +58 -17
- package/dist/shared/{chunk-qrs0g3m9.js.map → chunk-6vmvyg0q.js.map} +2 -2
- package/dist/shared/chunk-bkdccdhn.js +105 -0
- package/dist/shared/{chunk-p22keb3y.js.map → chunk-bkdccdhn.js.map} +2 -2
- package/dist/shared/chunk-chan1evn.js +72 -0
- package/dist/shared/{chunk-xrqhqgen.js.map → chunk-chan1evn.js.map} +2 -2
- package/dist/shared/chunk-cv6xa6qy.js +621 -0
- package/dist/shared/{chunk-t1jad451.js.map → chunk-cv6xa6qy.js.map} +2 -2
- package/dist/shared/chunk-cwxhwya1.js +548 -0
- package/dist/shared/{chunk-x3pmm3na.js.map → chunk-cwxhwya1.js.map} +2 -2
- package/dist/shared/{chunk-qyf32qsz.js → chunk-eets3mef.js} +75 -22
- package/dist/shared/{chunk-qyf32qsz.js.map → chunk-eets3mef.js.map} +2 -2
- package/dist/shared/chunk-efmap3y3.js +345 -0
- package/dist/shared/{chunk-e51ktjsq.js.map → chunk-efmap3y3.js.map} +2 -2
- package/dist/shared/chunk-hkfj9j6w.js +30 -0
- package/dist/shared/{chunk-pbns711f.js.map → chunk-hkfj9j6w.js.map} +2 -2
- package/dist/shared/{chunk-aj0aak90.js → chunk-jap9t59k.js} +52 -14
- package/dist/shared/{chunk-aj0aak90.js.map → chunk-jap9t59k.js.map} +2 -2
- package/dist/shared/chunk-m4mpkr4n.js +34 -0
- package/dist/shared/{chunk-5ybg5hda.js.map → chunk-m4mpkr4n.js.map} +2 -2
- package/dist/shared/chunk-m9wkjs7v.js +639 -0
- package/dist/shared/{chunk-kw4t1san.js.map → chunk-m9wkjs7v.js.map} +2 -2
- package/dist/shared/chunk-mssxq87m.js +195 -0
- package/dist/shared/{chunk-6kdkyjbn.js.map → chunk-mssxq87m.js.map} +2 -2
- package/dist/shared/chunk-p12g6e7b.js +38 -0
- package/dist/shared/{chunk-6jnj2pfx.js.map → chunk-p12g6e7b.js.map} +2 -2
- package/dist/shared/chunk-qbn9p4vj.js +835 -0
- package/dist/shared/{chunk-nfv9ce7v.js.map → chunk-qbn9p4vj.js.map} +2 -2
- package/dist/shared/chunk-r9hsk9fk.js +20 -0
- package/dist/shared/{chunk-59vwmfpm.js.map → chunk-r9hsk9fk.js.map} +1 -1
- package/dist/shared/chunk-sk8z5zmk.js +112 -0
- package/dist/shared/{chunk-x2d798hg.js.map → chunk-sk8z5zmk.js.map} +2 -2
- package/dist/shared/chunk-tqd6ek7s.js +86 -0
- package/dist/shared/{chunk-19qhst35.js.map → chunk-tqd6ek7s.js.map} +2 -2
- package/dist/shared/{chunk-31y260d6.js → chunk-trhrh4e1.js} +89 -24
- package/dist/shared/{chunk-31y260d6.js.map → chunk-trhrh4e1.js.map} +2 -2
- package/dist/shared/chunk-wg7xcq50.js +38 -0
- package/dist/shared/{chunk-t5cy307m.js.map → chunk-wg7xcq50.js.map} +2 -2
- package/dist/shared/{chunk-jr0xys18.js → chunk-yszvxhf3.js} +41 -11
- package/dist/shared/{chunk-jr0xys18.js.map → chunk-yszvxhf3.js.map} +2 -2
- package/dist/src/entities/book/index.js +34 -2
- package/dist/src/entities/book/index.js.map +1 -1
- package/dist/src/entities/common/index.js +26 -2
- package/dist/src/entities/common/index.js.map +1 -1
- package/dist/src/entities/country/index.js +9 -2
- package/dist/src/entities/country/index.js.map +1 -1
- package/dist/src/entities/currency/index.js +9 -2
- package/dist/src/entities/currency/index.js.map +1 -1
- package/dist/src/entities/folder/index.js +394 -2
- package/dist/src/entities/folder/index.js.map +2 -2
- package/dist/src/entities/gamification/flashcard/index.js +26 -2
- package/dist/src/entities/gamification/flashcard/index.js.map +1 -1
- package/dist/src/entities/gamification/index.js +9 -2
- package/dist/src/entities/gamification/index.js.map +1 -1
- package/dist/src/entities/gamification/mcq/index.js +36 -2
- package/dist/src/entities/gamification/mcq/index.js.map +1 -1
- package/dist/src/entities/image/index.js +31 -2
- package/dist/src/entities/image/index.js.map +1 -1
- package/dist/src/entities/medecine/index.js +13 -2
- package/dist/src/entities/medecine/index.js.map +1 -1
- package/dist/src/entities/payment/index.js +23 -2
- package/dist/src/entities/payment/index.js.map +1 -1
- package/dist/src/entities/user/index.js +30 -2
- package/dist/src/entities/user/index.js.map +1 -1
- package/dist/src/entities/video/index.js +34 -2
- package/dist/src/entities/video/index.js.map +1 -1
- package/dist/src/migrations/book/index.js +541 -137
- package/dist/src/migrations/book/index.js.map +2 -2
- package/dist/src/migrations/common/index.js +63 -14
- package/dist/src/migrations/common/index.js.map +2 -2
- package/dist/src/migrations/country/index.js +48 -13
- package/dist/src/migrations/country/index.js.map +2 -2
- package/dist/src/migrations/currency/index.js +50 -14
- package/dist/src/migrations/currency/index.js.map +2 -2
- package/dist/src/migrations/folder/index.js +426 -104
- package/dist/src/migrations/folder/index.js.map +2 -2
- package/dist/src/migrations/gamification/flashcard/index.js +356 -96
- package/dist/src/migrations/gamification/flashcard/index.js.map +2 -2
- package/dist/src/migrations/gamification/index.js +8 -2
- package/dist/src/migrations/gamification/index.js.map +1 -1
- package/dist/src/migrations/gamification/mcq/index.js +553 -139
- package/dist/src/migrations/gamification/mcq/index.js.map +2 -2
- package/dist/src/migrations/image/index.js +353 -85
- package/dist/src/migrations/image/index.js.map +2 -2
- package/dist/src/migrations/medecine/index.js +132 -36
- package/dist/src/migrations/medecine/index.js.map +2 -2
- package/dist/src/migrations/payment/index.js +339 -94
- package/dist/src/migrations/payment/index.js.map +2 -2
- package/dist/src/migrations/user/index.js +331 -39
- package/dist/src/migrations/user/index.js.map +2 -2
- package/dist/src/migrations/video/index.js +345 -17
- package/dist/src/migrations/video/index.js.map +2 -2
- package/dist/src/repositories/book/index.js +997 -2
- package/dist/src/repositories/book/index.js.map +2 -2
- package/dist/src/repositories/common/index.js +439 -2
- package/dist/src/repositories/common/index.js.map +2 -2
- package/dist/src/repositories/country/index.js +89 -2
- package/dist/src/repositories/country/index.js.map +2 -2
- package/dist/src/repositories/currency/index.js +89 -2
- package/dist/src/repositories/currency/index.js.map +2 -2
- package/dist/src/repositories/gamification/flashcard/index.js +632 -2
- package/dist/src/repositories/gamification/flashcard/index.js.map +2 -2
- package/dist/src/repositories/gamification/index.js +160 -2
- package/dist/src/repositories/gamification/index.js.map +2 -2
- package/dist/src/repositories/gamification/mcq/index.js +1017 -2
- package/dist/src/repositories/gamification/mcq/index.js.map +2 -2
- package/dist/src/repositories/image/index.js +800 -2
- package/dist/src/repositories/image/index.js.map +2 -2
- package/dist/src/repositories/medecine/index.js +243 -2
- package/dist/src/repositories/medecine/index.js.map +2 -2
- package/dist/src/repositories/payment/index.js +560 -2
- package/dist/src/repositories/payment/index.js.map +2 -2
- package/dist/src/repositories/user/index.js +999 -2
- package/dist/src/repositories/user/index.js.map +2 -2
- package/dist/src/repositories/video/index.js +975 -2
- package/dist/src/repositories/video/index.js.map +2 -2
- package/package.json +21 -21
- package/dist/shared/chunk-19qhst35.js +0 -5
- package/dist/shared/chunk-59vwmfpm.js +0 -5
- package/dist/shared/chunk-5tnqjb3n.js +0 -5
- package/dist/shared/chunk-5ybg5hda.js +0 -5
- package/dist/shared/chunk-6jnj2pfx.js +0 -5
- package/dist/shared/chunk-6kdkyjbn.js +0 -5
- package/dist/shared/chunk-e51ktjsq.js +0 -5
- package/dist/shared/chunk-kw4t1san.js +0 -5
- package/dist/shared/chunk-nfv9ce7v.js +0 -5
- package/dist/shared/chunk-p22keb3y.js +0 -5
- package/dist/shared/chunk-pbns711f.js +0 -5
- package/dist/shared/chunk-t1jad451.js +0 -5
- package/dist/shared/chunk-t5cy307m.js +0 -5
- package/dist/shared/chunk-x2d798hg.js +0 -5
- package/dist/shared/chunk-x3pmm3na.js +0 -5
- package/dist/shared/chunk-xrqhqgen.js +0 -5
- package/dist/shared/chunk-xwe8m6av.js +0 -5
- package/dist/shared/chunk-yrwsqc6r.js +0 -5
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"import { decorator, type IMigration, type MigrationClassType } from \"@ooneex/migrations\";\nimport type { TransactionSQL } from \"bun\";\nimport { Migration20251225174626782 } from \"./Migration20251225174626782\";\n\n@decorator.migration()\nexport class Migration20251225174634788 implements IMigration {\n public async up(tx: TransactionSQL): Promise<void> {\n await tx`\n CREATE TABLE IF NOT EXISTS folders_shared (\n id VARCHAR(25) PRIMARY KEY,\n folder_id VARCHAR(25),\n shared_with VARCHAR(255),\n shared_by_id VARCHAR(25),\n permission VARCHAR(50),\n expires_at TIMESTAMPTZ,\n is_locked BOOLEAN DEFAULT false,\n locked_at TIMESTAMPTZ,\n is_blocked BOOLEAN DEFAULT false,\n blocked_at TIMESTAMPTZ,\n block_reason TEXT,\n is_public BOOLEAN DEFAULT true,\n language VARCHAR(10),\n created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,\n updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,\n deleted_at TIMESTAMPTZ,\n CONSTRAINT fk_folders_shared_folder FOREIGN KEY (folder_id) REFERENCES folders(id) ON DELETE CASCADE\n )\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_shared_folder_id ON folders_shared(folder_id)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_shared_shared_by_id ON folders_shared(shared_by_id)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_shared_permission ON folders_shared(permission)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_shared_expires_at ON folders_shared(expires_at)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_shared_language ON folders_shared(language)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_shared_deleted_at ON folders_shared(deleted_at)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_shared_is_public ON folders_shared(is_public) WHERE deleted_at IS NULL\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_shared_created_at ON folders_shared(created_at DESC)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_shared_folder_user ON folders_shared(folder_id, shared_by_id) WHERE deleted_at IS NULL\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_shared_active ON folders_shared(is_blocked, is_locked) WHERE deleted_at IS NULL AND is_blocked = false\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_shared_active_not_expired ON folders_shared(expires_at) WHERE deleted_at IS NULL AND expires_at > NOW()\n `;\n }\n\n public async down(tx: TransactionSQL): Promise<void> {\n await tx`DROP TABLE IF EXISTS folders_shared CASCADE`;\n }\n\n public getVersion(): string {\n return \"20251225174634788\";\n }\n\n public getDependencies(): MigrationClassType[] {\n return [\n Migration20251225174626782, // Folders table (for folder_id foreign key)\n ];\n }\n}\n",
|
|
14
14
|
"import { decorator, type IMigration, type MigrationClassType } from \"@ooneex/migrations\";\nimport type { TransactionSQL } from \"bun\";\nimport { Migration20251225173350644 } from \"../common/Migration20251225173350644\";\nimport { Migration20251225174626782 } from \"./Migration20251225174626782\";\n\n@decorator.migration()\nexport class Migration20251225174635789 implements IMigration {\n public async up(tx: TransactionSQL): Promise<void> {\n await tx`\n CREATE TABLE IF NOT EXISTS folders_reports (\n id VARCHAR(25) PRIMARY KEY,\n folder_id VARCHAR(25),\n reason VARCHAR(255) NOT NULL,\n description TEXT,\n reported_by VARCHAR(255),\n reported_by_id VARCHAR(25),\n status_id VARCHAR(25),\n is_locked BOOLEAN DEFAULT false,\n locked_at TIMESTAMPTZ,\n is_blocked BOOLEAN DEFAULT false,\n blocked_at TIMESTAMPTZ,\n block_reason TEXT,\n is_public BOOLEAN DEFAULT true,\n language VARCHAR(10),\n created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,\n updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,\n deleted_at TIMESTAMPTZ,\n CONSTRAINT fk_folders_reports_folder FOREIGN KEY (folder_id) REFERENCES folders(id) ON DELETE CASCADE,\n CONSTRAINT fk_folders_reports_status FOREIGN KEY (status_id) REFERENCES statuses(id) ON DELETE SET NULL\n )\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_reports_folder_id ON folders_reports(folder_id)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_reports_reported_by_id ON folders_reports(reported_by_id)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_reports_status_id ON folders_reports(status_id)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_reports_reason ON folders_reports(reason)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_reports_language ON folders_reports(language)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_reports_deleted_at ON folders_reports(deleted_at)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_reports_is_public ON folders_reports(is_public) WHERE deleted_at IS NULL\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_reports_created_at ON folders_reports(created_at DESC)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_reports_folder_status ON folders_reports(folder_id, status_id) WHERE deleted_at IS NULL\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_reports_active ON folders_reports(is_blocked, is_locked) WHERE deleted_at IS NULL AND is_blocked = false\n `;\n }\n\n public async down(tx: TransactionSQL): Promise<void> {\n await tx`DROP TABLE IF EXISTS folders_reports CASCADE`;\n }\n\n public getVersion(): string {\n return \"20251225174635789\";\n }\n\n public getDependencies(): MigrationClassType[] {\n return [\n Migration20251225174626782, // Folders table (for folder_id foreign key)\n Migration20251225173350644, // Statuses table (for status_id foreign key)\n ];\n }\n}\n"
|
|
15
15
|
],
|
|
16
|
-
"mappings": ";
|
|
17
|
-
"debugId": "
|
|
16
|
+
"mappings": "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",
|
|
17
|
+
"debugId": "6DDDB58BDDF7223C64756E2164756E21",
|
|
18
18
|
"names": []
|
|
19
19
|
}
|
|
@@ -1,7 +1,25 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import
|
|
2
|
+
import {
|
|
3
|
+
Migration20251225173351645
|
|
4
|
+
} from "../../../../shared/chunk-jap9t59k.js";
|
|
5
|
+
import {
|
|
6
|
+
Migration20251225173350644
|
|
7
|
+
} from "../../../../shared/chunk-trhrh4e1.js";
|
|
8
|
+
import {
|
|
9
|
+
Migration20251225180910444
|
|
10
|
+
} from "../../../../shared/chunk-yszvxhf3.js";
|
|
11
|
+
import {
|
|
12
|
+
__legacyDecorateClassTS
|
|
13
|
+
} from "../../../../shared/chunk-r9hsk9fk.js";
|
|
14
|
+
|
|
15
|
+
// src/migrations/gamification/flashcard/Migration20251225181154477.ts
|
|
16
|
+
import { decorator } from "@ooneex/migrations";
|
|
17
|
+
class Migration20251225181154477 {
|
|
18
|
+
async up(tx) {
|
|
19
|
+
await tx`
|
|
3
20
|
CREATE TYPE flashcard_algorithm AS ENUM ('FSRS', 'SM2', 'ANKI')
|
|
4
|
-
|
|
21
|
+
`;
|
|
22
|
+
await tx`
|
|
5
23
|
CREATE TABLE IF NOT EXISTS flashcard_decks (
|
|
6
24
|
id VARCHAR(25) PRIMARY KEY,
|
|
7
25
|
name VARCHAR(500) NOT NULL,
|
|
@@ -37,29 +55,62 @@ import{c as I}from"../../../../shared/chunk-aj0aak90.js";import{e as d}from"../.
|
|
|
37
55
|
deleted_at TIMESTAMPTZ,
|
|
38
56
|
CONSTRAINT fk_flashcard_decks_status FOREIGN KEY (status_id) REFERENCES statuses(id) ON DELETE SET NULL
|
|
39
57
|
)
|
|
40
|
-
|
|
58
|
+
`;
|
|
59
|
+
await tx`
|
|
41
60
|
CREATE INDEX IF NOT EXISTS idx_flashcard_decks_name ON flashcard_decks(name)
|
|
42
|
-
|
|
61
|
+
`;
|
|
62
|
+
await tx`
|
|
43
63
|
CREATE INDEX IF NOT EXISTS idx_flashcard_decks_algorithm ON flashcard_decks(algorithm)
|
|
44
|
-
|
|
64
|
+
`;
|
|
65
|
+
await tx`
|
|
45
66
|
CREATE INDEX IF NOT EXISTS idx_flashcard_decks_stat_id ON flashcard_decks(stat_id)
|
|
46
|
-
|
|
67
|
+
`;
|
|
68
|
+
await tx`
|
|
47
69
|
CREATE INDEX IF NOT EXISTS idx_flashcard_decks_status_id ON flashcard_decks(status_id)
|
|
48
|
-
|
|
70
|
+
`;
|
|
71
|
+
await tx`
|
|
49
72
|
CREATE INDEX IF NOT EXISTS idx_flashcard_decks_language ON flashcard_decks(language)
|
|
50
|
-
|
|
73
|
+
`;
|
|
74
|
+
await tx`
|
|
51
75
|
CREATE INDEX IF NOT EXISTS idx_flashcard_decks_deleted_at ON flashcard_decks(deleted_at)
|
|
52
|
-
|
|
76
|
+
`;
|
|
77
|
+
await tx`
|
|
53
78
|
CREATE INDEX IF NOT EXISTS idx_flashcard_decks_is_public ON flashcard_decks(is_public) WHERE deleted_at IS NULL
|
|
54
|
-
|
|
79
|
+
`;
|
|
80
|
+
await tx`
|
|
55
81
|
CREATE INDEX IF NOT EXISTS idx_flashcard_decks_created_at ON flashcard_decks(created_at DESC)
|
|
56
|
-
|
|
82
|
+
`;
|
|
83
|
+
await tx`
|
|
57
84
|
CREATE INDEX IF NOT EXISTS idx_flashcard_decks_updated_at ON flashcard_decks(updated_at DESC)
|
|
58
|
-
|
|
85
|
+
`;
|
|
86
|
+
await tx`
|
|
59
87
|
CREATE INDEX IF NOT EXISTS idx_flashcard_decks_active ON flashcard_decks(is_blocked, is_locked) WHERE deleted_at IS NULL AND is_blocked = false
|
|
60
|
-
|
|
88
|
+
`;
|
|
89
|
+
}
|
|
90
|
+
async down(tx) {
|
|
91
|
+
await tx`DROP TABLE IF EXISTS flashcard_decks CASCADE`;
|
|
92
|
+
await tx`DROP TYPE IF EXISTS flashcard_algorithm CASCADE`;
|
|
93
|
+
}
|
|
94
|
+
getVersion() {
|
|
95
|
+
return "20251225181154477";
|
|
96
|
+
}
|
|
97
|
+
getDependencies() {
|
|
98
|
+
return [
|
|
99
|
+
Migration20251225173350644
|
|
100
|
+
];
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
Migration20251225181154477 = __legacyDecorateClassTS([
|
|
104
|
+
decorator.migration()
|
|
105
|
+
], Migration20251225181154477);
|
|
106
|
+
// src/migrations/gamification/flashcard/Migration20251225181154480.ts
|
|
107
|
+
import { decorator as decorator2 } from "@ooneex/migrations";
|
|
108
|
+
class Migration20251225181154480 {
|
|
109
|
+
async up(tx) {
|
|
110
|
+
await tx`
|
|
61
111
|
CREATE TYPE flashcard_state AS ENUM ('NEW', 'LEARNING', 'REVIEW', 'RELEARNING', 'SUSPENDED')
|
|
62
|
-
|
|
112
|
+
`;
|
|
113
|
+
await tx`
|
|
63
114
|
CREATE TABLE IF NOT EXISTS flashcard_schedules (
|
|
64
115
|
id VARCHAR(25) PRIMARY KEY,
|
|
65
116
|
state flashcard_state DEFAULT 'NEW',
|
|
@@ -86,27 +137,57 @@ import{c as I}from"../../../../shared/chunk-aj0aak90.js";import{e as d}from"../.
|
|
|
86
137
|
updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
87
138
|
deleted_at TIMESTAMPTZ
|
|
88
139
|
)
|
|
89
|
-
|
|
140
|
+
`;
|
|
141
|
+
await tx`
|
|
90
142
|
CREATE INDEX IF NOT EXISTS idx_flashcard_schedules_state ON flashcard_schedules(state)
|
|
91
|
-
|
|
143
|
+
`;
|
|
144
|
+
await tx`
|
|
92
145
|
CREATE INDEX IF NOT EXISTS idx_flashcard_schedules_due_date ON flashcard_schedules(due_date)
|
|
93
|
-
|
|
146
|
+
`;
|
|
147
|
+
await tx`
|
|
94
148
|
CREATE INDEX IF NOT EXISTS idx_flashcard_schedules_last_reviewed_at ON flashcard_schedules(last_reviewed_at DESC)
|
|
95
|
-
|
|
149
|
+
`;
|
|
150
|
+
await tx`
|
|
96
151
|
CREATE INDEX IF NOT EXISTS idx_flashcard_schedules_interval ON flashcard_schedules(interval)
|
|
97
|
-
|
|
152
|
+
`;
|
|
153
|
+
await tx`
|
|
98
154
|
CREATE INDEX IF NOT EXISTS idx_flashcard_schedules_language ON flashcard_schedules(language)
|
|
99
|
-
|
|
155
|
+
`;
|
|
156
|
+
await tx`
|
|
100
157
|
CREATE INDEX IF NOT EXISTS idx_flashcard_schedules_deleted_at ON flashcard_schedules(deleted_at)
|
|
101
|
-
|
|
158
|
+
`;
|
|
159
|
+
await tx`
|
|
102
160
|
CREATE INDEX IF NOT EXISTS idx_flashcard_schedules_is_public ON flashcard_schedules(is_public) WHERE deleted_at IS NULL
|
|
103
|
-
|
|
161
|
+
`;
|
|
162
|
+
await tx`
|
|
104
163
|
CREATE INDEX IF NOT EXISTS idx_flashcard_schedules_created_at ON flashcard_schedules(created_at DESC)
|
|
105
|
-
|
|
164
|
+
`;
|
|
165
|
+
await tx`
|
|
106
166
|
CREATE INDEX IF NOT EXISTS idx_flashcard_schedules_active ON flashcard_schedules(is_blocked, is_locked) WHERE deleted_at IS NULL AND is_blocked = false
|
|
107
|
-
|
|
167
|
+
`;
|
|
168
|
+
await tx`
|
|
108
169
|
CREATE INDEX IF NOT EXISTS idx_flashcard_schedules_due ON flashcard_schedules(state, due_date) WHERE deleted_at IS NULL AND due_date <= CURRENT_TIMESTAMP
|
|
109
|
-
|
|
170
|
+
`;
|
|
171
|
+
}
|
|
172
|
+
async down(tx) {
|
|
173
|
+
await tx`DROP TABLE IF EXISTS flashcard_schedules CASCADE`;
|
|
174
|
+
await tx`DROP TYPE IF EXISTS flashcard_state CASCADE`;
|
|
175
|
+
}
|
|
176
|
+
getVersion() {
|
|
177
|
+
return "20251225181154480";
|
|
178
|
+
}
|
|
179
|
+
getDependencies() {
|
|
180
|
+
return [];
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
Migration20251225181154480 = __legacyDecorateClassTS([
|
|
184
|
+
decorator2.migration()
|
|
185
|
+
], Migration20251225181154480);
|
|
186
|
+
// src/migrations/gamification/flashcard/Migration20251225181154482.ts
|
|
187
|
+
import { decorator as decorator3 } from "@ooneex/migrations";
|
|
188
|
+
class Migration20251225181154482 {
|
|
189
|
+
async up(tx) {
|
|
190
|
+
await tx`
|
|
110
191
|
CREATE TABLE IF NOT EXISTS flashcards (
|
|
111
192
|
id VARCHAR(25) PRIMARY KEY,
|
|
112
193
|
front TEXT NOT NULL,
|
|
@@ -133,7 +214,8 @@ import{c as I}from"../../../../shared/chunk-aj0aak90.js";import{e as d}from"../.
|
|
|
133
214
|
CONSTRAINT fk_flashcards_deck FOREIGN KEY (deck_id) REFERENCES flashcard_decks(id) ON DELETE SET NULL,
|
|
134
215
|
CONSTRAINT fk_flashcards_status FOREIGN KEY (status_id) REFERENCES statuses(id) ON DELETE SET NULL
|
|
135
216
|
)
|
|
136
|
-
|
|
217
|
+
`;
|
|
218
|
+
await tx`
|
|
137
219
|
CREATE TABLE IF NOT EXISTS flashcards_tags (
|
|
138
220
|
flashcard_id VARCHAR(25) NOT NULL,
|
|
139
221
|
tag_id VARCHAR(25) NOT NULL,
|
|
@@ -141,35 +223,74 @@ import{c as I}from"../../../../shared/chunk-aj0aak90.js";import{e as d}from"../.
|
|
|
141
223
|
CONSTRAINT fk_flashcards_tags_flashcard FOREIGN KEY (flashcard_id) REFERENCES flashcards(id) ON DELETE CASCADE,
|
|
142
224
|
CONSTRAINT fk_flashcards_tags_tag FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE
|
|
143
225
|
)
|
|
144
|
-
|
|
226
|
+
`;
|
|
227
|
+
await tx`
|
|
145
228
|
CREATE INDEX IF NOT EXISTS idx_flashcards_schedule_id ON flashcards(schedule_id)
|
|
146
|
-
|
|
229
|
+
`;
|
|
230
|
+
await tx`
|
|
147
231
|
CREATE INDEX IF NOT EXISTS idx_flashcards_deck_id ON flashcards(deck_id)
|
|
148
|
-
|
|
232
|
+
`;
|
|
233
|
+
await tx`
|
|
149
234
|
CREATE INDEX IF NOT EXISTS idx_flashcards_context ON flashcards(context, context_id)
|
|
150
|
-
|
|
235
|
+
`;
|
|
236
|
+
await tx`
|
|
151
237
|
CREATE INDEX IF NOT EXISTS idx_flashcards_stat_id ON flashcards(stat_id)
|
|
152
|
-
|
|
238
|
+
`;
|
|
239
|
+
await tx`
|
|
153
240
|
CREATE INDEX IF NOT EXISTS idx_flashcards_status_id ON flashcards(status_id)
|
|
154
|
-
|
|
241
|
+
`;
|
|
242
|
+
await tx`
|
|
155
243
|
CREATE INDEX IF NOT EXISTS idx_flashcards_image_id ON flashcards(image_id)
|
|
156
|
-
|
|
244
|
+
`;
|
|
245
|
+
await tx`
|
|
157
246
|
CREATE INDEX IF NOT EXISTS idx_flashcards_language ON flashcards(language)
|
|
158
|
-
|
|
247
|
+
`;
|
|
248
|
+
await tx`
|
|
159
249
|
CREATE INDEX IF NOT EXISTS idx_flashcards_deleted_at ON flashcards(deleted_at)
|
|
160
|
-
|
|
250
|
+
`;
|
|
251
|
+
await tx`
|
|
161
252
|
CREATE INDEX IF NOT EXISTS idx_flashcards_is_public ON flashcards(is_public) WHERE deleted_at IS NULL
|
|
162
|
-
|
|
253
|
+
`;
|
|
254
|
+
await tx`
|
|
163
255
|
CREATE INDEX IF NOT EXISTS idx_flashcards_created_at ON flashcards(created_at DESC)
|
|
164
|
-
|
|
256
|
+
`;
|
|
257
|
+
await tx`
|
|
165
258
|
CREATE INDEX IF NOT EXISTS idx_flashcards_updated_at ON flashcards(updated_at DESC)
|
|
166
|
-
|
|
259
|
+
`;
|
|
260
|
+
await tx`
|
|
167
261
|
CREATE INDEX IF NOT EXISTS idx_flashcards_active ON flashcards(is_blocked, is_locked) WHERE deleted_at IS NULL AND is_blocked = false
|
|
168
|
-
|
|
262
|
+
`;
|
|
263
|
+
await tx`
|
|
169
264
|
CREATE INDEX IF NOT EXISTS idx_flashcards_tags_flashcard_id ON flashcards_tags(flashcard_id)
|
|
170
|
-
|
|
265
|
+
`;
|
|
266
|
+
await tx`
|
|
171
267
|
CREATE INDEX IF NOT EXISTS idx_flashcards_tags_tag_id ON flashcards_tags(tag_id)
|
|
172
|
-
|
|
268
|
+
`;
|
|
269
|
+
}
|
|
270
|
+
async down(tx) {
|
|
271
|
+
await tx`DROP TABLE IF EXISTS flashcards_tags CASCADE`;
|
|
272
|
+
await tx`DROP TABLE IF EXISTS flashcards CASCADE`;
|
|
273
|
+
}
|
|
274
|
+
getVersion() {
|
|
275
|
+
return "20251225181154482";
|
|
276
|
+
}
|
|
277
|
+
getDependencies() {
|
|
278
|
+
return [
|
|
279
|
+
Migration20251225181154480,
|
|
280
|
+
Migration20251225181154477,
|
|
281
|
+
Migration20251225173350644,
|
|
282
|
+
Migration20251225173351645
|
|
283
|
+
];
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
Migration20251225181154482 = __legacyDecorateClassTS([
|
|
287
|
+
decorator3.migration()
|
|
288
|
+
], Migration20251225181154482);
|
|
289
|
+
// src/migrations/gamification/flashcard/Migration20251225181154484.ts
|
|
290
|
+
import { decorator as decorator4 } from "@ooneex/migrations";
|
|
291
|
+
class Migration20251225181154484 {
|
|
292
|
+
async up(tx) {
|
|
293
|
+
await tx`
|
|
173
294
|
CREATE TABLE IF NOT EXISTS flashcard_presets (
|
|
174
295
|
id VARCHAR(25) PRIMARY KEY,
|
|
175
296
|
name VARCHAR(500) NOT NULL,
|
|
@@ -205,23 +326,50 @@ import{c as I}from"../../../../shared/chunk-aj0aak90.js";import{e as d}from"../.
|
|
|
205
326
|
updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
206
327
|
deleted_at TIMESTAMPTZ
|
|
207
328
|
)
|
|
208
|
-
|
|
329
|
+
`;
|
|
330
|
+
await tx`
|
|
209
331
|
CREATE INDEX IF NOT EXISTS idx_flashcard_presets_name ON flashcard_presets(name)
|
|
210
|
-
|
|
332
|
+
`;
|
|
333
|
+
await tx`
|
|
211
334
|
CREATE INDEX IF NOT EXISTS idx_flashcard_presets_algorithm ON flashcard_presets(algorithm)
|
|
212
|
-
|
|
335
|
+
`;
|
|
336
|
+
await tx`
|
|
213
337
|
CREATE INDEX IF NOT EXISTS idx_flashcard_presets_language ON flashcard_presets(language)
|
|
214
|
-
|
|
338
|
+
`;
|
|
339
|
+
await tx`
|
|
215
340
|
CREATE INDEX IF NOT EXISTS idx_flashcard_presets_deleted_at ON flashcard_presets(deleted_at)
|
|
216
|
-
|
|
341
|
+
`;
|
|
342
|
+
await tx`
|
|
217
343
|
CREATE INDEX IF NOT EXISTS idx_flashcard_presets_is_public ON flashcard_presets(is_public) WHERE deleted_at IS NULL
|
|
218
|
-
|
|
344
|
+
`;
|
|
345
|
+
await tx`
|
|
219
346
|
CREATE INDEX IF NOT EXISTS idx_flashcard_presets_created_at ON flashcard_presets(created_at DESC)
|
|
220
|
-
|
|
347
|
+
`;
|
|
348
|
+
await tx`
|
|
221
349
|
CREATE INDEX IF NOT EXISTS idx_flashcard_presets_active ON flashcard_presets(is_blocked, is_locked) WHERE deleted_at IS NULL AND is_blocked = false
|
|
222
|
-
|
|
350
|
+
`;
|
|
351
|
+
}
|
|
352
|
+
async down(tx) {
|
|
353
|
+
await tx`DROP TABLE IF EXISTS flashcard_presets CASCADE`;
|
|
354
|
+
}
|
|
355
|
+
getVersion() {
|
|
356
|
+
return "20251225181154484";
|
|
357
|
+
}
|
|
358
|
+
getDependencies() {
|
|
359
|
+
return [];
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
Migration20251225181154484 = __legacyDecorateClassTS([
|
|
363
|
+
decorator4.migration()
|
|
364
|
+
], Migration20251225181154484);
|
|
365
|
+
// src/migrations/gamification/flashcard/Migration20251225181154486.ts
|
|
366
|
+
import { decorator as decorator5 } from "@ooneex/migrations";
|
|
367
|
+
class Migration20251225181154486 {
|
|
368
|
+
async up(tx) {
|
|
369
|
+
await tx`
|
|
223
370
|
CREATE TYPE flashcard_session_status AS ENUM ('DRAFT', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'CANCELLED')
|
|
224
|
-
|
|
371
|
+
`;
|
|
372
|
+
await tx`
|
|
225
373
|
CREATE TABLE IF NOT EXISTS flashcard_sessions (
|
|
226
374
|
id VARCHAR(25) PRIMARY KEY,
|
|
227
375
|
name VARCHAR(500) NOT NULL,
|
|
@@ -261,7 +409,8 @@ import{c as I}from"../../../../shared/chunk-aj0aak90.js";import{e as d}from"../.
|
|
|
261
409
|
deleted_at TIMESTAMPTZ,
|
|
262
410
|
CONSTRAINT fk_flashcard_sessions_level FOREIGN KEY (level_id) REFERENCES levels(id) ON DELETE RESTRICT
|
|
263
411
|
)
|
|
264
|
-
|
|
412
|
+
`;
|
|
413
|
+
await tx`
|
|
265
414
|
CREATE TABLE IF NOT EXISTS flashcard_sessions_cards (
|
|
266
415
|
session_id VARCHAR(25) NOT NULL,
|
|
267
416
|
flashcard_id VARCHAR(25) NOT NULL,
|
|
@@ -269,43 +418,85 @@ import{c as I}from"../../../../shared/chunk-aj0aak90.js";import{e as d}from"../.
|
|
|
269
418
|
CONSTRAINT fk_flashcard_sessions_cards_session FOREIGN KEY (session_id) REFERENCES flashcard_sessions(id) ON DELETE CASCADE,
|
|
270
419
|
CONSTRAINT fk_flashcard_sessions_cards_flashcard FOREIGN KEY (flashcard_id) REFERENCES flashcards(id) ON DELETE CASCADE
|
|
271
420
|
)
|
|
272
|
-
|
|
421
|
+
`;
|
|
422
|
+
await tx`
|
|
273
423
|
CREATE INDEX IF NOT EXISTS idx_flashcard_sessions_name ON flashcard_sessions(name)
|
|
274
|
-
|
|
424
|
+
`;
|
|
425
|
+
await tx`
|
|
275
426
|
CREATE INDEX IF NOT EXISTS idx_flashcard_sessions_status ON flashcard_sessions(status)
|
|
276
|
-
|
|
427
|
+
`;
|
|
428
|
+
await tx`
|
|
277
429
|
CREATE INDEX IF NOT EXISTS idx_flashcard_sessions_type ON flashcard_sessions(type)
|
|
278
|
-
|
|
430
|
+
`;
|
|
431
|
+
await tx`
|
|
279
432
|
CREATE INDEX IF NOT EXISTS idx_flashcard_sessions_level_id ON flashcard_sessions(level_id)
|
|
280
|
-
|
|
433
|
+
`;
|
|
434
|
+
await tx`
|
|
281
435
|
CREATE INDEX IF NOT EXISTS idx_flashcard_sessions_algorithm ON flashcard_sessions(algorithm)
|
|
282
|
-
|
|
436
|
+
`;
|
|
437
|
+
await tx`
|
|
283
438
|
CREATE INDEX IF NOT EXISTS idx_flashcard_sessions_score ON flashcard_sessions(score DESC)
|
|
284
|
-
|
|
439
|
+
`;
|
|
440
|
+
await tx`
|
|
285
441
|
CREATE INDEX IF NOT EXISTS idx_flashcard_sessions_started_at ON flashcard_sessions(started_at DESC)
|
|
286
|
-
|
|
442
|
+
`;
|
|
443
|
+
await tx`
|
|
287
444
|
CREATE INDEX IF NOT EXISTS idx_flashcard_sessions_completed_at ON flashcard_sessions(completed_at DESC)
|
|
288
|
-
|
|
445
|
+
`;
|
|
446
|
+
await tx`
|
|
289
447
|
CREATE INDEX IF NOT EXISTS idx_flashcard_sessions_language ON flashcard_sessions(language)
|
|
290
|
-
|
|
448
|
+
`;
|
|
449
|
+
await tx`
|
|
291
450
|
CREATE INDEX IF NOT EXISTS idx_flashcard_sessions_deleted_at ON flashcard_sessions(deleted_at)
|
|
292
|
-
|
|
451
|
+
`;
|
|
452
|
+
await tx`
|
|
293
453
|
CREATE INDEX IF NOT EXISTS idx_flashcard_sessions_is_public ON flashcard_sessions(is_public) WHERE deleted_at IS NULL
|
|
294
|
-
|
|
454
|
+
`;
|
|
455
|
+
await tx`
|
|
295
456
|
CREATE INDEX IF NOT EXISTS idx_flashcard_sessions_created_at ON flashcard_sessions(created_at DESC)
|
|
296
|
-
|
|
457
|
+
`;
|
|
458
|
+
await tx`
|
|
297
459
|
CREATE INDEX IF NOT EXISTS idx_flashcard_sessions_updated_at ON flashcard_sessions(updated_at DESC)
|
|
298
|
-
|
|
460
|
+
`;
|
|
461
|
+
await tx`
|
|
299
462
|
CREATE INDEX IF NOT EXISTS idx_flashcard_sessions_active ON flashcard_sessions(is_blocked, is_locked) WHERE deleted_at IS NULL AND is_blocked = false
|
|
300
|
-
|
|
463
|
+
`;
|
|
464
|
+
await tx`
|
|
301
465
|
CREATE INDEX IF NOT EXISTS idx_flashcard_sessions_performance ON flashcard_sessions(type, score DESC, completed_at DESC) WHERE status = 'COMPLETED' AND deleted_at IS NULL
|
|
302
|
-
|
|
466
|
+
`;
|
|
467
|
+
await tx`
|
|
303
468
|
CREATE INDEX IF NOT EXISTS idx_flashcard_sessions_cards_session_id ON flashcard_sessions_cards(session_id)
|
|
304
|
-
|
|
469
|
+
`;
|
|
470
|
+
await tx`
|
|
305
471
|
CREATE INDEX IF NOT EXISTS idx_flashcard_sessions_cards_flashcard_id ON flashcard_sessions_cards(flashcard_id)
|
|
306
|
-
|
|
472
|
+
`;
|
|
473
|
+
}
|
|
474
|
+
async down(tx) {
|
|
475
|
+
await tx`DROP TABLE IF EXISTS flashcard_sessions_cards CASCADE`;
|
|
476
|
+
await tx`DROP TABLE IF EXISTS flashcard_sessions CASCADE`;
|
|
477
|
+
await tx`DROP TYPE IF EXISTS flashcard_session_status CASCADE`;
|
|
478
|
+
}
|
|
479
|
+
getVersion() {
|
|
480
|
+
return "20251225181154486";
|
|
481
|
+
}
|
|
482
|
+
getDependencies() {
|
|
483
|
+
return [
|
|
484
|
+
Migration20251225180910444,
|
|
485
|
+
Migration20251225181154482
|
|
486
|
+
];
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
Migration20251225181154486 = __legacyDecorateClassTS([
|
|
490
|
+
decorator5.migration()
|
|
491
|
+
], Migration20251225181154486);
|
|
492
|
+
// src/migrations/gamification/flashcard/Migration20251225181154489.ts
|
|
493
|
+
import { decorator as decorator6 } from "@ooneex/migrations";
|
|
494
|
+
class Migration20251225181154489 {
|
|
495
|
+
async up(tx) {
|
|
496
|
+
await tx`
|
|
307
497
|
CREATE TYPE flashcard_rating AS ENUM ('AGAIN', 'HARD', 'GOOD', 'EASY')
|
|
308
|
-
|
|
498
|
+
`;
|
|
499
|
+
await tx`
|
|
309
500
|
CREATE TABLE IF NOT EXISTS flashcard_reviews (
|
|
310
501
|
id VARCHAR(25) PRIMARY KEY,
|
|
311
502
|
card_id VARCHAR(25) NOT NULL,
|
|
@@ -336,33 +527,69 @@ import{c as I}from"../../../../shared/chunk-aj0aak90.js";import{e as d}from"../.
|
|
|
336
527
|
CONSTRAINT fk_flashcard_reviews_card FOREIGN KEY (card_id) REFERENCES flashcards(id) ON DELETE CASCADE,
|
|
337
528
|
CONSTRAINT fk_flashcard_reviews_session FOREIGN KEY (session_id) REFERENCES flashcard_sessions(id) ON DELETE CASCADE
|
|
338
529
|
)
|
|
339
|
-
|
|
530
|
+
`;
|
|
531
|
+
await tx`
|
|
340
532
|
CREATE INDEX IF NOT EXISTS idx_flashcard_reviews_card_id ON flashcard_reviews(card_id)
|
|
341
|
-
|
|
533
|
+
`;
|
|
534
|
+
await tx`
|
|
342
535
|
CREATE INDEX IF NOT EXISTS idx_flashcard_reviews_session_id ON flashcard_reviews(session_id)
|
|
343
|
-
|
|
536
|
+
`;
|
|
537
|
+
await tx`
|
|
344
538
|
CREATE INDEX IF NOT EXISTS idx_flashcard_reviews_rating ON flashcard_reviews(rating)
|
|
345
|
-
|
|
539
|
+
`;
|
|
540
|
+
await tx`
|
|
346
541
|
CREATE INDEX IF NOT EXISTS idx_flashcard_reviews_algorithm ON flashcard_reviews(algorithm)
|
|
347
|
-
|
|
542
|
+
`;
|
|
543
|
+
await tx`
|
|
348
544
|
CREATE INDEX IF NOT EXISTS idx_flashcard_reviews_reviewed_at ON flashcard_reviews(reviewed_at DESC)
|
|
349
|
-
|
|
545
|
+
`;
|
|
546
|
+
await tx`
|
|
350
547
|
CREATE INDEX IF NOT EXISTS idx_flashcard_reviews_was_lapse ON flashcard_reviews(was_lapse) WHERE was_lapse = true
|
|
351
|
-
|
|
548
|
+
`;
|
|
549
|
+
await tx`
|
|
352
550
|
CREATE INDEX IF NOT EXISTS idx_flashcard_reviews_language ON flashcard_reviews(language)
|
|
353
|
-
|
|
551
|
+
`;
|
|
552
|
+
await tx`
|
|
354
553
|
CREATE INDEX IF NOT EXISTS idx_flashcard_reviews_deleted_at ON flashcard_reviews(deleted_at)
|
|
355
|
-
|
|
554
|
+
`;
|
|
555
|
+
await tx`
|
|
356
556
|
CREATE INDEX IF NOT EXISTS idx_flashcard_reviews_is_public ON flashcard_reviews(is_public) WHERE deleted_at IS NULL
|
|
357
|
-
|
|
557
|
+
`;
|
|
558
|
+
await tx`
|
|
358
559
|
CREATE INDEX IF NOT EXISTS idx_flashcard_reviews_created_at ON flashcard_reviews(created_at DESC)
|
|
359
|
-
|
|
560
|
+
`;
|
|
561
|
+
await tx`
|
|
360
562
|
CREATE INDEX IF NOT EXISTS idx_flashcard_reviews_active ON flashcard_reviews(is_blocked, is_locked) WHERE deleted_at IS NULL AND is_blocked = false
|
|
361
|
-
|
|
563
|
+
`;
|
|
564
|
+
await tx`
|
|
362
565
|
CREATE INDEX IF NOT EXISTS idx_flashcard_reviews_card_reviewed ON flashcard_reviews(card_id, reviewed_at DESC)
|
|
363
|
-
|
|
566
|
+
`;
|
|
567
|
+
await tx`
|
|
364
568
|
CREATE INDEX IF NOT EXISTS idx_flashcard_reviews_session_reviewed ON flashcard_reviews(session_id, reviewed_at DESC)
|
|
365
|
-
|
|
569
|
+
`;
|
|
570
|
+
}
|
|
571
|
+
async down(tx) {
|
|
572
|
+
await tx`DROP TABLE IF EXISTS flashcard_reviews CASCADE`;
|
|
573
|
+
await tx`DROP TYPE IF EXISTS flashcard_rating CASCADE`;
|
|
574
|
+
}
|
|
575
|
+
getVersion() {
|
|
576
|
+
return "20251225181154489";
|
|
577
|
+
}
|
|
578
|
+
getDependencies() {
|
|
579
|
+
return [
|
|
580
|
+
Migration20251225181154482,
|
|
581
|
+
Migration20251225181154486
|
|
582
|
+
];
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
Migration20251225181154489 = __legacyDecorateClassTS([
|
|
586
|
+
decorator6.migration()
|
|
587
|
+
], Migration20251225181154489);
|
|
588
|
+
// src/migrations/gamification/flashcard/Migration20251225181154491.ts
|
|
589
|
+
import { decorator as decorator7 } from "@ooneex/migrations";
|
|
590
|
+
class Migration20251225181154491 {
|
|
591
|
+
async up(tx) {
|
|
592
|
+
await tx`
|
|
366
593
|
CREATE TABLE IF NOT EXISTS flashcard_stats (
|
|
367
594
|
id VARCHAR(25) PRIMARY KEY,
|
|
368
595
|
cards_studied_today INT DEFAULT 0,
|
|
@@ -395,26 +622,59 @@ import{c as I}from"../../../../shared/chunk-aj0aak90.js";import{e as d}from"../.
|
|
|
395
622
|
updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
396
623
|
deleted_at TIMESTAMPTZ
|
|
397
624
|
)
|
|
398
|
-
|
|
625
|
+
`;
|
|
626
|
+
await tx`
|
|
399
627
|
CREATE INDEX IF NOT EXISTS idx_flashcard_stats_start_date ON flashcard_stats(start_date DESC)
|
|
400
|
-
|
|
628
|
+
`;
|
|
629
|
+
await tx`
|
|
401
630
|
CREATE INDEX IF NOT EXISTS idx_flashcard_stats_end_date ON flashcard_stats(end_date DESC)
|
|
402
|
-
|
|
631
|
+
`;
|
|
632
|
+
await tx`
|
|
403
633
|
CREATE INDEX IF NOT EXISTS idx_flashcard_stats_current_streak ON flashcard_stats(current_streak DESC)
|
|
404
|
-
|
|
634
|
+
`;
|
|
635
|
+
await tx`
|
|
405
636
|
CREATE INDEX IF NOT EXISTS idx_flashcard_stats_retention_rate ON flashcard_stats(retention_rate DESC)
|
|
406
|
-
|
|
637
|
+
`;
|
|
638
|
+
await tx`
|
|
407
639
|
CREATE INDEX IF NOT EXISTS idx_flashcard_stats_language ON flashcard_stats(language)
|
|
408
|
-
|
|
640
|
+
`;
|
|
641
|
+
await tx`
|
|
409
642
|
CREATE INDEX IF NOT EXISTS idx_flashcard_stats_deleted_at ON flashcard_stats(deleted_at)
|
|
410
|
-
|
|
643
|
+
`;
|
|
644
|
+
await tx`
|
|
411
645
|
CREATE INDEX IF NOT EXISTS idx_flashcard_stats_is_public ON flashcard_stats(is_public) WHERE deleted_at IS NULL
|
|
412
|
-
|
|
646
|
+
`;
|
|
647
|
+
await tx`
|
|
413
648
|
CREATE INDEX IF NOT EXISTS idx_flashcard_stats_created_at ON flashcard_stats(created_at DESC)
|
|
414
|
-
|
|
649
|
+
`;
|
|
650
|
+
await tx`
|
|
415
651
|
CREATE INDEX IF NOT EXISTS idx_flashcard_stats_active ON flashcard_stats(is_blocked, is_locked) WHERE deleted_at IS NULL AND is_blocked = false
|
|
416
|
-
|
|
652
|
+
`;
|
|
653
|
+
await tx`
|
|
417
654
|
CREATE INDEX IF NOT EXISTS idx_flashcard_stats_date_range ON flashcard_stats(start_date, end_date) WHERE deleted_at IS NULL
|
|
418
|
-
|
|
655
|
+
`;
|
|
656
|
+
}
|
|
657
|
+
async down(tx) {
|
|
658
|
+
await tx`DROP TABLE IF EXISTS flashcard_stats CASCADE`;
|
|
659
|
+
}
|
|
660
|
+
getVersion() {
|
|
661
|
+
return "20251225181154491";
|
|
662
|
+
}
|
|
663
|
+
getDependencies() {
|
|
664
|
+
return [];
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
Migration20251225181154491 = __legacyDecorateClassTS([
|
|
668
|
+
decorator7.migration()
|
|
669
|
+
], Migration20251225181154491);
|
|
670
|
+
export {
|
|
671
|
+
Migration20251225181154491,
|
|
672
|
+
Migration20251225181154489,
|
|
673
|
+
Migration20251225181154486,
|
|
674
|
+
Migration20251225181154484,
|
|
675
|
+
Migration20251225181154482,
|
|
676
|
+
Migration20251225181154480,
|
|
677
|
+
Migration20251225181154477
|
|
678
|
+
};
|
|
419
679
|
|
|
420
|
-
//# debugId=
|
|
680
|
+
//# debugId=12413C5D6316B95264756E2164756E21
|