@ooneex/typeorm 0.0.1 → 0.3.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-1ez1q8rj.js +5 -0
- package/dist/shared/chunk-1ez1q8rj.js.map +10 -0
- package/dist/shared/chunk-23739ja5.js +5 -0
- package/dist/shared/{chunk-pwhygf44.js.map → chunk-23739ja5.js.map} +2 -2
- package/dist/shared/chunk-3s989zjv.js +5 -0
- package/dist/shared/{chunk-eh420jqn.js.map → chunk-3s989zjv.js.map} +2 -2
- package/dist/shared/chunk-4ysz6b7v.js +5 -0
- package/dist/shared/chunk-4ysz6b7v.js.map +10 -0
- package/dist/shared/chunk-635xd7h1.js +5 -0
- package/dist/shared/{chunk-wmftwzcs.js.map → chunk-635xd7h1.js.map} +2 -2
- package/dist/shared/chunk-63wp98dt.js +101 -0
- package/dist/shared/chunk-63wp98dt.js.map +11 -0
- package/dist/shared/chunk-6gzanxfz.js +5 -0
- package/dist/shared/chunk-6gzanxfz.js.map +18 -0
- package/dist/shared/chunk-81xh5hbk.js +5 -0
- package/dist/shared/chunk-81xh5hbk.js.map +21 -0
- package/dist/shared/chunk-8q6vs955.js +5 -0
- package/dist/shared/chunk-8q6vs955.js.map +10 -0
- package/dist/shared/chunk-bdyby4d8.js +5 -0
- package/dist/shared/chunk-bdyby4d8.js.map +10 -0
- package/dist/shared/chunk-fjtw26pp.js +5 -0
- package/dist/shared/{chunk-j7nprmyh.js.map → chunk-fjtw26pp.js.map} +2 -2
- package/dist/shared/chunk-gcch857j.js +5 -0
- package/dist/shared/chunk-gcch857j.js.map +11 -0
- package/dist/shared/chunk-h5mdrgqp.js +5 -0
- package/dist/shared/chunk-h5mdrgqp.js.map +21 -0
- package/dist/shared/chunk-mwb9mvew.js +42 -0
- package/dist/shared/chunk-mwb9mvew.js.map +10 -0
- package/dist/shared/chunk-n5dqa3qy.js +36 -0
- package/dist/shared/chunk-n5dqa3qy.js.map +10 -0
- package/dist/shared/chunk-qqvx08b4.js +5 -0
- package/dist/shared/{chunk-2e7zbxcq.js.map → chunk-qqvx08b4.js.map} +2 -2
- package/dist/shared/chunk-r7q1mkar.js +82 -0
- package/dist/shared/chunk-r7q1mkar.js.map +10 -0
- package/dist/shared/chunk-s1yxjjz5.js +5 -0
- package/dist/shared/chunk-s1yxjjz5.js.map +21 -0
- package/dist/shared/chunk-sm3brprk.js +51 -0
- package/dist/shared/chunk-sm3brprk.js.map +10 -0
- package/dist/shared/chunk-wp8mt34q.js +5 -0
- package/dist/shared/chunk-wp8mt34q.js.map +12 -0
- package/dist/shared/chunk-x9h6vngs.js +5 -0
- package/dist/shared/chunk-x9h6vngs.js.map +9 -0
- package/dist/shared/chunk-xyq6sfz0.js +5 -0
- package/dist/shared/{chunk-zmzz7hqq.js.map → chunk-xyq6sfz0.js.map} +2 -2
- package/dist/shared/chunk-yq9g4gac.js +5 -0
- package/dist/shared/{chunk-wawk30n1.js.map → chunk-yq9g4gac.js.map} +9 -4
- package/dist/src/entities/book/index.d.ts +80 -3
- package/dist/src/entities/book/index.js +2 -2
- package/dist/src/entities/book/index.js.map +1 -1
- package/dist/src/entities/common/index.d.ts +21 -28
- package/dist/src/entities/common/index.js +2 -2
- package/dist/src/entities/common/index.js.map +1 -1
- package/dist/src/entities/country/index.d.ts +21 -0
- package/dist/src/entities/country/index.js +4 -0
- package/dist/src/entities/country/index.js.map +9 -0
- package/dist/src/entities/currency/index.d.ts +23 -0
- package/dist/src/entities/currency/index.js +4 -0
- package/dist/src/entities/currency/index.js.map +9 -0
- package/dist/src/entities/folder/index.d.ts +104 -0
- package/dist/src/entities/folder/index.js +4 -0
- package/dist/src/entities/folder/index.js.map +19 -0
- package/dist/src/entities/gamification/flashcard/index.js +2 -2
- package/dist/src/entities/gamification/flashcard/index.js.map +1 -1
- package/dist/src/entities/gamification/index.js +2 -2
- package/dist/src/entities/gamification/index.js.map +1 -1
- package/dist/src/entities/gamification/mcq/index.d.ts +76 -7
- package/dist/src/entities/gamification/mcq/index.js +2 -2
- package/dist/src/entities/gamification/mcq/index.js.map +1 -1
- package/dist/src/entities/image/index.d.ts +83 -6
- package/dist/src/entities/image/index.js +2 -2
- package/dist/src/entities/image/index.js.map +1 -1
- package/dist/src/entities/medecine/index.d.ts +36 -0
- package/dist/src/entities/medecine/index.js +4 -0
- package/dist/src/entities/medecine/index.js.map +9 -0
- package/dist/src/entities/payment/index.js +2 -2
- package/dist/src/entities/payment/index.js.map +1 -1
- package/dist/src/entities/user/index.d.ts +48 -7
- package/dist/src/entities/user/index.js +2 -2
- package/dist/src/entities/user/index.js.map +1 -1
- package/dist/src/entities/video/index.d.ts +88 -10
- package/dist/src/entities/video/index.js +2 -2
- package/dist/src/entities/video/index.js.map +1 -1
- package/dist/src/migrations/book/index.d.ts +97 -0
- package/dist/src/migrations/book/index.js +516 -0
- package/dist/src/migrations/book/index.js.map +21 -0
- package/dist/src/migrations/common/index.d.ts +41 -0
- package/dist/src/migrations/common/index.js +57 -0
- package/dist/src/migrations/common/index.js.map +10 -0
- package/dist/src/migrations/country/index.d.ts +9 -0
- package/dist/src/migrations/country/index.js +40 -0
- package/dist/src/migrations/country/index.js.map +10 -0
- package/dist/src/migrations/currency/index.d.ts +9 -0
- package/dist/src/migrations/currency/index.js +44 -0
- package/dist/src/migrations/currency/index.js.map +10 -0
- package/dist/src/migrations/folder/index.d.ts +81 -0
- package/dist/src/migrations/folder/index.js +387 -0
- package/dist/src/migrations/folder/index.js.map +19 -0
- package/dist/src/migrations/gamification/flashcard/index.d.ts +57 -0
- package/dist/src/migrations/gamification/flashcard/index.js +420 -0
- package/dist/src/migrations/gamification/flashcard/index.js.map +16 -0
- package/dist/src/migrations/gamification/index.d.ts +9 -0
- package/dist/src/migrations/gamification/index.js +4 -0
- package/dist/src/migrations/gamification/index.js.map +9 -0
- package/dist/src/migrations/gamification/mcq/index.d.ts +97 -0
- package/dist/src/migrations/gamification/mcq/index.js +526 -0
- package/dist/src/migrations/gamification/mcq/index.js.map +21 -0
- package/dist/src/migrations/image/index.d.ts +81 -0
- package/dist/src/migrations/image/index.js +328 -0
- package/dist/src/migrations/image/index.js.map +18 -0
- package/dist/src/migrations/medecine/index.d.ts +25 -0
- package/dist/src/migrations/medecine/index.js +119 -0
- package/dist/src/migrations/medecine/index.js.map +12 -0
- package/dist/src/migrations/payment/index.d.ts +49 -0
- package/dist/src/migrations/payment/index.js +352 -0
- package/dist/src/migrations/payment/index.js.map +15 -0
- package/dist/src/migrations/user/index.d.ts +81 -0
- package/dist/src/migrations/user/index.js +309 -0
- package/dist/src/migrations/user/index.js.map +19 -0
- package/dist/src/migrations/video/index.d.ts +97 -0
- package/dist/src/migrations/video/index.js +289 -0
- package/dist/src/migrations/video/index.js.map +21 -0
- package/dist/src/repositories/book/index.d.ts +310 -35
- package/dist/src/repositories/book/index.js +2 -2
- package/dist/src/repositories/book/index.js.map +15 -6
- package/dist/src/repositories/common/index.d.ts +65 -94
- package/dist/src/repositories/common/index.js +2 -2
- package/dist/src/repositories/common/index.js.map +8 -9
- package/dist/src/repositories/country/index.d.ts +42 -0
- package/dist/src/repositories/country/index.js +4 -0
- package/dist/src/repositories/country/index.js.map +10 -0
- package/dist/src/repositories/currency/index.d.ts +44 -0
- package/dist/src/repositories/currency/index.js +4 -0
- package/dist/src/repositories/currency/index.js.map +10 -0
- package/dist/src/repositories/gamification/flashcard/index.d.ts +14 -14
- package/dist/src/repositories/gamification/flashcard/index.js +2 -2
- package/dist/src/repositories/gamification/flashcard/index.js.map +9 -9
- package/dist/src/repositories/gamification/index.d.ts +328 -83
- package/dist/src/repositories/gamification/index.js +2 -2
- package/dist/src/repositories/gamification/index.js.map +3 -3
- package/dist/src/repositories/gamification/mcq/index.d.ts +299 -54
- package/dist/src/repositories/gamification/mcq/index.js +2 -2
- package/dist/src/repositories/gamification/mcq/index.js.map +15 -7
- package/dist/src/repositories/image/index.d.ts +295 -20
- package/dist/src/repositories/image/index.js +2 -2
- package/dist/src/repositories/image/index.js.map +13 -4
- package/dist/src/repositories/medecine/index.d.ts +99 -0
- package/dist/src/repositories/medecine/index.js +4 -0
- package/dist/src/repositories/medecine/index.js.map +12 -0
- package/dist/src/repositories/payment/index.d.ts +12 -12
- package/dist/src/repositories/payment/index.js +2 -2
- package/dist/src/repositories/payment/index.js.map +8 -8
- package/dist/src/repositories/user/index.d.ts +210 -59
- package/dist/src/repositories/user/index.js +2 -2
- package/dist/src/repositories/user/index.js.map +13 -8
- package/dist/src/repositories/video/index.d.ts +330 -54
- package/dist/src/repositories/video/index.js +2 -2
- package/dist/src/repositories/video/index.js.map +15 -6
- package/package.json +188 -58
- package/dist/ooneex-typeorm-0.0.1.tgz +0 -0
- package/dist/shared/chunk-2e7zbxcq.js +0 -5
- package/dist/shared/chunk-764bzjhz.js +0 -5
- package/dist/shared/chunk-764bzjhz.js.map +0 -12
- package/dist/shared/chunk-eh420jqn.js +0 -5
- package/dist/shared/chunk-gjsgnzaq.js +0 -5
- package/dist/shared/chunk-gjsgnzaq.js.map +0 -10
- package/dist/shared/chunk-hw4vdg6q.js +0 -5
- package/dist/shared/chunk-hw4vdg6q.js.map +0 -10
- package/dist/shared/chunk-j7nprmyh.js +0 -5
- package/dist/shared/chunk-kgxsdeye.js +0 -5
- package/dist/shared/chunk-kgxsdeye.js.map +0 -13
- package/dist/shared/chunk-ntrrrvwt.js +0 -5
- package/dist/shared/chunk-ntrrrvwt.js.map +0 -12
- package/dist/shared/chunk-pwhygf44.js +0 -5
- package/dist/shared/chunk-sd6mmec6.js +0 -5
- package/dist/shared/chunk-sd6mmec6.js.map +0 -12
- package/dist/shared/chunk-wawk30n1.js +0 -5
- package/dist/shared/chunk-wmftwzcs.js +0 -5
- package/dist/shared/chunk-zmzz7hqq.js +0 -5
|
@@ -0,0 +1,387 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{d as H,e as I}from"../../../shared/chunk-63wp98dt.js";import{_a as p}from"../../../shared/chunk-x9h6vngs.js";import{decorator as J}from"@ooneex/migrations";class j{async up(h){await h`
|
|
3
|
+
CREATE TABLE IF NOT EXISTS folders (
|
|
4
|
+
id VARCHAR(25) PRIMARY KEY,
|
|
5
|
+
name VARCHAR(255) NOT NULL,
|
|
6
|
+
color_id VARCHAR(25),
|
|
7
|
+
description TEXT,
|
|
8
|
+
parent_id VARCHAR(25),
|
|
9
|
+
context VARCHAR(255),
|
|
10
|
+
context_id VARCHAR(25),
|
|
11
|
+
is_locked BOOLEAN DEFAULT false,
|
|
12
|
+
locked_at TIMESTAMPTZ,
|
|
13
|
+
is_blocked BOOLEAN DEFAULT false,
|
|
14
|
+
blocked_at TIMESTAMPTZ,
|
|
15
|
+
block_reason TEXT,
|
|
16
|
+
is_public BOOLEAN DEFAULT true,
|
|
17
|
+
language VARCHAR(10),
|
|
18
|
+
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
19
|
+
updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
20
|
+
deleted_at TIMESTAMPTZ,
|
|
21
|
+
CONSTRAINT fk_folders_color FOREIGN KEY (color_id) REFERENCES colors(id) ON DELETE SET NULL,
|
|
22
|
+
CONSTRAINT fk_folders_parent FOREIGN KEY (parent_id) REFERENCES folders(id) ON DELETE CASCADE
|
|
23
|
+
)
|
|
24
|
+
`,await h`
|
|
25
|
+
CREATE INDEX IF NOT EXISTS idx_folders_name ON folders(name)
|
|
26
|
+
`,await h`
|
|
27
|
+
CREATE INDEX IF NOT EXISTS idx_folders_color_id ON folders(color_id)
|
|
28
|
+
`,await h`
|
|
29
|
+
CREATE INDEX IF NOT EXISTS idx_folders_parent_id ON folders(parent_id)
|
|
30
|
+
`,await h`
|
|
31
|
+
CREATE INDEX IF NOT EXISTS idx_folders_context ON folders(context, context_id)
|
|
32
|
+
`,await h`
|
|
33
|
+
CREATE INDEX IF NOT EXISTS idx_folders_language ON folders(language)
|
|
34
|
+
`,await h`
|
|
35
|
+
CREATE INDEX IF NOT EXISTS idx_folders_deleted_at ON folders(deleted_at)
|
|
36
|
+
`,await h`
|
|
37
|
+
CREATE INDEX IF NOT EXISTS idx_folders_is_public ON folders(is_public) WHERE deleted_at IS NULL
|
|
38
|
+
`,await h`
|
|
39
|
+
CREATE INDEX IF NOT EXISTS idx_folders_name_lower ON folders(LOWER(name)) WHERE deleted_at IS NULL
|
|
40
|
+
`,await h`
|
|
41
|
+
CREATE INDEX IF NOT EXISTS idx_folders_parent_name ON folders(parent_id, name) WHERE deleted_at IS NULL
|
|
42
|
+
`,await h`
|
|
43
|
+
CREATE INDEX IF NOT EXISTS idx_folders_created_at ON folders(created_at DESC)
|
|
44
|
+
`,await h`
|
|
45
|
+
CREATE INDEX IF NOT EXISTS idx_folders_updated_at ON folders(updated_at DESC)
|
|
46
|
+
`,await h`
|
|
47
|
+
CREATE INDEX IF NOT EXISTS idx_folders_active ON folders(is_blocked, is_locked) WHERE deleted_at IS NULL AND is_blocked = false
|
|
48
|
+
`}async down(h){await h`DROP TABLE IF EXISTS folders CASCADE`}getVersion(){return"20251225174626782"}getDependencies(){return[H]}}j=p([J.migration()],j);import{decorator as K}from"@ooneex/migrations";class q{async up(h){await h`
|
|
49
|
+
CREATE TABLE IF NOT EXISTS folders_stats (
|
|
50
|
+
id VARCHAR(25) PRIMARY KEY,
|
|
51
|
+
folder_id VARCHAR(25),
|
|
52
|
+
likes_count INT DEFAULT 0,
|
|
53
|
+
dislikes_count INT DEFAULT 0,
|
|
54
|
+
comments_count INT DEFAULT 0,
|
|
55
|
+
shares_count INT DEFAULT 0,
|
|
56
|
+
saves_count INT DEFAULT 0,
|
|
57
|
+
downloads_count INT DEFAULT 0,
|
|
58
|
+
views_count INT DEFAULT 0,
|
|
59
|
+
reports_count INT DEFAULT 0,
|
|
60
|
+
is_locked BOOLEAN DEFAULT false,
|
|
61
|
+
locked_at TIMESTAMPTZ,
|
|
62
|
+
is_blocked BOOLEAN DEFAULT false,
|
|
63
|
+
blocked_at TIMESTAMPTZ,
|
|
64
|
+
block_reason TEXT,
|
|
65
|
+
is_public BOOLEAN DEFAULT true,
|
|
66
|
+
language VARCHAR(10),
|
|
67
|
+
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
68
|
+
updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
69
|
+
deleted_at TIMESTAMPTZ,
|
|
70
|
+
CONSTRAINT fk_folders_stats_folder FOREIGN KEY (folder_id) REFERENCES folders(id) ON DELETE CASCADE
|
|
71
|
+
)
|
|
72
|
+
`,await h`
|
|
73
|
+
CREATE INDEX IF NOT EXISTS idx_folders_stats_folder_id ON folders_stats(folder_id)
|
|
74
|
+
`,await h`
|
|
75
|
+
CREATE INDEX IF NOT EXISTS idx_folders_stats_likes_count ON folders_stats(likes_count DESC)
|
|
76
|
+
`,await h`
|
|
77
|
+
CREATE INDEX IF NOT EXISTS idx_folders_stats_views_count ON folders_stats(views_count DESC)
|
|
78
|
+
`,await h`
|
|
79
|
+
CREATE INDEX IF NOT EXISTS idx_folders_stats_downloads_count ON folders_stats(downloads_count DESC)
|
|
80
|
+
`,await h`
|
|
81
|
+
CREATE INDEX IF NOT EXISTS idx_folders_stats_language ON folders_stats(language)
|
|
82
|
+
`,await h`
|
|
83
|
+
CREATE INDEX IF NOT EXISTS idx_folders_stats_deleted_at ON folders_stats(deleted_at)
|
|
84
|
+
`,await h`
|
|
85
|
+
CREATE INDEX IF NOT EXISTS idx_folders_stats_is_public ON folders_stats(is_public) WHERE deleted_at IS NULL
|
|
86
|
+
`,await h`
|
|
87
|
+
CREATE INDEX IF NOT EXISTS idx_folders_stats_popular ON folders_stats(is_public, likes_count DESC, views_count DESC) WHERE deleted_at IS NULL
|
|
88
|
+
`,await h`
|
|
89
|
+
CREATE INDEX IF NOT EXISTS idx_folders_stats_created_at ON folders_stats(created_at DESC)
|
|
90
|
+
`,await h`
|
|
91
|
+
CREATE INDEX IF NOT EXISTS idx_folders_stats_active ON folders_stats(is_blocked, is_locked) WHERE deleted_at IS NULL AND is_blocked = false
|
|
92
|
+
`}async down(h){await h`DROP TABLE IF EXISTS folders_stats CASCADE`}getVersion(){return"20251225174627783"}getDependencies(){return[j]}}q=p([K.migration()],q);import{decorator as L}from"@ooneex/migrations";class v{async up(h){await h`
|
|
93
|
+
CREATE TABLE IF NOT EXISTS folders_comments (
|
|
94
|
+
id VARCHAR(25) PRIMARY KEY,
|
|
95
|
+
folder_id VARCHAR(25),
|
|
96
|
+
comment TEXT NOT NULL,
|
|
97
|
+
commented_by VARCHAR(255),
|
|
98
|
+
commented_by_id VARCHAR(25),
|
|
99
|
+
parent_comment_id VARCHAR(25),
|
|
100
|
+
is_locked BOOLEAN DEFAULT false,
|
|
101
|
+
locked_at TIMESTAMPTZ,
|
|
102
|
+
is_blocked BOOLEAN DEFAULT false,
|
|
103
|
+
blocked_at TIMESTAMPTZ,
|
|
104
|
+
block_reason TEXT,
|
|
105
|
+
is_public BOOLEAN DEFAULT true,
|
|
106
|
+
language VARCHAR(10),
|
|
107
|
+
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
108
|
+
updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
109
|
+
deleted_at TIMESTAMPTZ,
|
|
110
|
+
CONSTRAINT fk_folders_comments_folder FOREIGN KEY (folder_id) REFERENCES folders(id) ON DELETE CASCADE,
|
|
111
|
+
CONSTRAINT fk_folders_comments_parent FOREIGN KEY (parent_comment_id) REFERENCES folders_comments(id) ON DELETE CASCADE
|
|
112
|
+
)
|
|
113
|
+
`,await h`
|
|
114
|
+
CREATE INDEX IF NOT EXISTS idx_folders_comments_folder_id ON folders_comments(folder_id)
|
|
115
|
+
`,await h`
|
|
116
|
+
CREATE INDEX IF NOT EXISTS idx_folders_comments_commented_by_id ON folders_comments(commented_by_id)
|
|
117
|
+
`,await h`
|
|
118
|
+
CREATE INDEX IF NOT EXISTS idx_folders_comments_parent_comment_id ON folders_comments(parent_comment_id)
|
|
119
|
+
`,await h`
|
|
120
|
+
CREATE INDEX IF NOT EXISTS idx_folders_comments_language ON folders_comments(language)
|
|
121
|
+
`,await h`
|
|
122
|
+
CREATE INDEX IF NOT EXISTS idx_folders_comments_deleted_at ON folders_comments(deleted_at)
|
|
123
|
+
`,await h`
|
|
124
|
+
CREATE INDEX IF NOT EXISTS idx_folders_comments_is_public ON folders_comments(is_public) WHERE deleted_at IS NULL
|
|
125
|
+
`,await h`
|
|
126
|
+
CREATE INDEX IF NOT EXISTS idx_folders_comments_created_at ON folders_comments(created_at DESC)
|
|
127
|
+
`,await h`
|
|
128
|
+
CREATE INDEX IF NOT EXISTS idx_folders_comments_folder_created ON folders_comments(folder_id, created_at DESC) WHERE deleted_at IS NULL
|
|
129
|
+
`,await h`
|
|
130
|
+
CREATE INDEX IF NOT EXISTS idx_folders_comments_active ON folders_comments(is_blocked, is_locked) WHERE deleted_at IS NULL AND is_blocked = false
|
|
131
|
+
`}async down(h){await h`DROP TABLE IF EXISTS folders_comments CASCADE`}getVersion(){return"20251225174628784"}getDependencies(){return[j]}}v=p([L.migration()],v);import{decorator as N}from"@ooneex/migrations";class z{async up(h){await h`
|
|
132
|
+
CREATE TABLE IF NOT EXISTS folders_liked (
|
|
133
|
+
id VARCHAR(25) PRIMARY KEY,
|
|
134
|
+
folder_id VARCHAR(25),
|
|
135
|
+
liked_by VARCHAR(255),
|
|
136
|
+
liked_by_id VARCHAR(25),
|
|
137
|
+
is_locked BOOLEAN DEFAULT false,
|
|
138
|
+
locked_at TIMESTAMPTZ,
|
|
139
|
+
is_blocked BOOLEAN DEFAULT false,
|
|
140
|
+
blocked_at TIMESTAMPTZ,
|
|
141
|
+
block_reason TEXT,
|
|
142
|
+
is_public BOOLEAN DEFAULT true,
|
|
143
|
+
language VARCHAR(10),
|
|
144
|
+
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
145
|
+
updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
146
|
+
deleted_at TIMESTAMPTZ,
|
|
147
|
+
CONSTRAINT fk_folders_liked_folder FOREIGN KEY (folder_id) REFERENCES folders(id) ON DELETE CASCADE
|
|
148
|
+
)
|
|
149
|
+
`,await h`
|
|
150
|
+
CREATE INDEX IF NOT EXISTS idx_folders_liked_folder_id ON folders_liked(folder_id)
|
|
151
|
+
`,await h`
|
|
152
|
+
CREATE INDEX IF NOT EXISTS idx_folders_liked_liked_by_id ON folders_liked(liked_by_id)
|
|
153
|
+
`,await h`
|
|
154
|
+
CREATE INDEX IF NOT EXISTS idx_folders_liked_language ON folders_liked(language)
|
|
155
|
+
`,await h`
|
|
156
|
+
CREATE INDEX IF NOT EXISTS idx_folders_liked_deleted_at ON folders_liked(deleted_at)
|
|
157
|
+
`,await h`
|
|
158
|
+
CREATE INDEX IF NOT EXISTS idx_folders_liked_is_public ON folders_liked(is_public) WHERE deleted_at IS NULL
|
|
159
|
+
`,await h`
|
|
160
|
+
CREATE INDEX IF NOT EXISTS idx_folders_liked_created_at ON folders_liked(created_at DESC)
|
|
161
|
+
`,await h`
|
|
162
|
+
CREATE INDEX IF NOT EXISTS idx_folders_liked_folder_user ON folders_liked(folder_id, liked_by_id) WHERE deleted_at IS NULL
|
|
163
|
+
`,await h`
|
|
164
|
+
CREATE INDEX IF NOT EXISTS idx_folders_liked_active ON folders_liked(is_blocked, is_locked) WHERE deleted_at IS NULL AND is_blocked = false
|
|
165
|
+
`}async down(h){await h`DROP TABLE IF EXISTS folders_liked CASCADE`}getVersion(){return"20251225174629784"}getDependencies(){return[j]}}z=p([N.migration()],z);import{decorator as O}from"@ooneex/migrations";class A{async up(h){await h`
|
|
166
|
+
CREATE TABLE IF NOT EXISTS folders_disliked (
|
|
167
|
+
id VARCHAR(25) PRIMARY KEY,
|
|
168
|
+
folder_id VARCHAR(25),
|
|
169
|
+
disliked_by VARCHAR(255),
|
|
170
|
+
disliked_by_id VARCHAR(25),
|
|
171
|
+
is_locked BOOLEAN DEFAULT false,
|
|
172
|
+
locked_at TIMESTAMPTZ,
|
|
173
|
+
is_blocked BOOLEAN DEFAULT false,
|
|
174
|
+
blocked_at TIMESTAMPTZ,
|
|
175
|
+
block_reason TEXT,
|
|
176
|
+
is_public BOOLEAN DEFAULT true,
|
|
177
|
+
language VARCHAR(10),
|
|
178
|
+
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
179
|
+
updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
180
|
+
deleted_at TIMESTAMPTZ,
|
|
181
|
+
CONSTRAINT fk_folders_disliked_folder FOREIGN KEY (folder_id) REFERENCES folders(id) ON DELETE CASCADE
|
|
182
|
+
)
|
|
183
|
+
`,await h`
|
|
184
|
+
CREATE INDEX IF NOT EXISTS idx_folders_disliked_folder_id ON folders_disliked(folder_id)
|
|
185
|
+
`,await h`
|
|
186
|
+
CREATE INDEX IF NOT EXISTS idx_folders_disliked_disliked_by_id ON folders_disliked(disliked_by_id)
|
|
187
|
+
`,await h`
|
|
188
|
+
CREATE INDEX IF NOT EXISTS idx_folders_disliked_language ON folders_disliked(language)
|
|
189
|
+
`,await h`
|
|
190
|
+
CREATE INDEX IF NOT EXISTS idx_folders_disliked_deleted_at ON folders_disliked(deleted_at)
|
|
191
|
+
`,await h`
|
|
192
|
+
CREATE INDEX IF NOT EXISTS idx_folders_disliked_is_public ON folders_disliked(is_public) WHERE deleted_at IS NULL
|
|
193
|
+
`,await h`
|
|
194
|
+
CREATE INDEX IF NOT EXISTS idx_folders_disliked_created_at ON folders_disliked(created_at DESC)
|
|
195
|
+
`,await h`
|
|
196
|
+
CREATE INDEX IF NOT EXISTS idx_folders_disliked_folder_user ON folders_disliked(folder_id, disliked_by_id) WHERE deleted_at IS NULL
|
|
197
|
+
`,await h`
|
|
198
|
+
CREATE INDEX IF NOT EXISTS idx_folders_disliked_active ON folders_disliked(is_blocked, is_locked) WHERE deleted_at IS NULL AND is_blocked = false
|
|
199
|
+
`}async down(h){await h`DROP TABLE IF EXISTS folders_disliked CASCADE`}getVersion(){return"20251225174630785"}getDependencies(){return[j]}}A=p([O.migration()],A);import{decorator as P}from"@ooneex/migrations";class B{async up(h){await h`
|
|
200
|
+
CREATE TABLE IF NOT EXISTS folders_viewed (
|
|
201
|
+
id VARCHAR(25) PRIMARY KEY,
|
|
202
|
+
folder_id VARCHAR(25),
|
|
203
|
+
viewed_by VARCHAR(255),
|
|
204
|
+
viewed_by_id VARCHAR(25),
|
|
205
|
+
is_locked BOOLEAN DEFAULT false,
|
|
206
|
+
locked_at TIMESTAMPTZ,
|
|
207
|
+
is_blocked BOOLEAN DEFAULT false,
|
|
208
|
+
blocked_at TIMESTAMPTZ,
|
|
209
|
+
block_reason TEXT,
|
|
210
|
+
is_public BOOLEAN DEFAULT true,
|
|
211
|
+
language VARCHAR(10),
|
|
212
|
+
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
213
|
+
updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
214
|
+
deleted_at TIMESTAMPTZ,
|
|
215
|
+
CONSTRAINT fk_folders_viewed_folder FOREIGN KEY (folder_id) REFERENCES folders(id) ON DELETE CASCADE
|
|
216
|
+
)
|
|
217
|
+
`,await h`
|
|
218
|
+
CREATE INDEX IF NOT EXISTS idx_folders_viewed_folder_id ON folders_viewed(folder_id)
|
|
219
|
+
`,await h`
|
|
220
|
+
CREATE INDEX IF NOT EXISTS idx_folders_viewed_viewed_by_id ON folders_viewed(viewed_by_id)
|
|
221
|
+
`,await h`
|
|
222
|
+
CREATE INDEX IF NOT EXISTS idx_folders_viewed_language ON folders_viewed(language)
|
|
223
|
+
`,await h`
|
|
224
|
+
CREATE INDEX IF NOT EXISTS idx_folders_viewed_deleted_at ON folders_viewed(deleted_at)
|
|
225
|
+
`,await h`
|
|
226
|
+
CREATE INDEX IF NOT EXISTS idx_folders_viewed_is_public ON folders_viewed(is_public) WHERE deleted_at IS NULL
|
|
227
|
+
`,await h`
|
|
228
|
+
CREATE INDEX IF NOT EXISTS idx_folders_viewed_created_at ON folders_viewed(created_at DESC)
|
|
229
|
+
`,await h`
|
|
230
|
+
CREATE INDEX IF NOT EXISTS idx_folders_viewed_folder_user ON folders_viewed(folder_id, viewed_by_id) WHERE deleted_at IS NULL
|
|
231
|
+
`,await h`
|
|
232
|
+
CREATE INDEX IF NOT EXISTS idx_folders_viewed_active ON folders_viewed(is_blocked, is_locked) WHERE deleted_at IS NULL AND is_blocked = false
|
|
233
|
+
`}async down(h){await h`DROP TABLE IF EXISTS folders_viewed CASCADE`}getVersion(){return"20251225174631785"}getDependencies(){return[j]}}B=p([P.migration()],B);import{decorator as Q}from"@ooneex/migrations";class C{async up(h){await h`
|
|
234
|
+
CREATE TABLE IF NOT EXISTS folders_saved (
|
|
235
|
+
id VARCHAR(25) PRIMARY KEY,
|
|
236
|
+
folder_id VARCHAR(25),
|
|
237
|
+
saved_by VARCHAR(255),
|
|
238
|
+
saved_by_id VARCHAR(25),
|
|
239
|
+
is_locked BOOLEAN DEFAULT false,
|
|
240
|
+
locked_at TIMESTAMPTZ,
|
|
241
|
+
is_blocked BOOLEAN DEFAULT false,
|
|
242
|
+
blocked_at TIMESTAMPTZ,
|
|
243
|
+
block_reason TEXT,
|
|
244
|
+
is_public BOOLEAN DEFAULT true,
|
|
245
|
+
language VARCHAR(10),
|
|
246
|
+
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
247
|
+
updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
248
|
+
deleted_at TIMESTAMPTZ,
|
|
249
|
+
CONSTRAINT fk_folders_saved_folder FOREIGN KEY (folder_id) REFERENCES folders(id) ON DELETE CASCADE
|
|
250
|
+
)
|
|
251
|
+
`,await h`
|
|
252
|
+
CREATE INDEX IF NOT EXISTS idx_folders_saved_folder_id ON folders_saved(folder_id)
|
|
253
|
+
`,await h`
|
|
254
|
+
CREATE INDEX IF NOT EXISTS idx_folders_saved_saved_by_id ON folders_saved(saved_by_id)
|
|
255
|
+
`,await h`
|
|
256
|
+
CREATE INDEX IF NOT EXISTS idx_folders_saved_language ON folders_saved(language)
|
|
257
|
+
`,await h`
|
|
258
|
+
CREATE INDEX IF NOT EXISTS idx_folders_saved_deleted_at ON folders_saved(deleted_at)
|
|
259
|
+
`,await h`
|
|
260
|
+
CREATE INDEX IF NOT EXISTS idx_folders_saved_is_public ON folders_saved(is_public) WHERE deleted_at IS NULL
|
|
261
|
+
`,await h`
|
|
262
|
+
CREATE INDEX IF NOT EXISTS idx_folders_saved_created_at ON folders_saved(created_at DESC)
|
|
263
|
+
`,await h`
|
|
264
|
+
CREATE INDEX IF NOT EXISTS idx_folders_saved_folder_user ON folders_saved(folder_id, saved_by_id) WHERE deleted_at IS NULL
|
|
265
|
+
`,await h`
|
|
266
|
+
CREATE INDEX IF NOT EXISTS idx_folders_saved_active ON folders_saved(is_blocked, is_locked) WHERE deleted_at IS NULL AND is_blocked = false
|
|
267
|
+
`}async down(h){await h`DROP TABLE IF EXISTS folders_saved CASCADE`}getVersion(){return"20251225174632786"}getDependencies(){return[j]}}C=p([Q.migration()],C);import{decorator as R}from"@ooneex/migrations";class D{async up(h){await h`
|
|
268
|
+
CREATE TABLE IF NOT EXISTS folders_downloaded (
|
|
269
|
+
id VARCHAR(25) PRIMARY KEY,
|
|
270
|
+
folder_id VARCHAR(25),
|
|
271
|
+
downloaded_by VARCHAR(255),
|
|
272
|
+
downloaded_by_id VARCHAR(25),
|
|
273
|
+
is_locked BOOLEAN DEFAULT false,
|
|
274
|
+
locked_at TIMESTAMPTZ,
|
|
275
|
+
is_blocked BOOLEAN DEFAULT false,
|
|
276
|
+
blocked_at TIMESTAMPTZ,
|
|
277
|
+
block_reason TEXT,
|
|
278
|
+
is_public BOOLEAN DEFAULT true,
|
|
279
|
+
language VARCHAR(10),
|
|
280
|
+
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
281
|
+
updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
282
|
+
deleted_at TIMESTAMPTZ,
|
|
283
|
+
CONSTRAINT fk_folders_downloaded_folder FOREIGN KEY (folder_id) REFERENCES folders(id) ON DELETE CASCADE
|
|
284
|
+
)
|
|
285
|
+
`,await h`
|
|
286
|
+
CREATE INDEX IF NOT EXISTS idx_folders_downloaded_folder_id ON folders_downloaded(folder_id)
|
|
287
|
+
`,await h`
|
|
288
|
+
CREATE INDEX IF NOT EXISTS idx_folders_downloaded_downloaded_by_id ON folders_downloaded(downloaded_by_id)
|
|
289
|
+
`,await h`
|
|
290
|
+
CREATE INDEX IF NOT EXISTS idx_folders_downloaded_language ON folders_downloaded(language)
|
|
291
|
+
`,await h`
|
|
292
|
+
CREATE INDEX IF NOT EXISTS idx_folders_downloaded_deleted_at ON folders_downloaded(deleted_at)
|
|
293
|
+
`,await h`
|
|
294
|
+
CREATE INDEX IF NOT EXISTS idx_folders_downloaded_is_public ON folders_downloaded(is_public) WHERE deleted_at IS NULL
|
|
295
|
+
`,await h`
|
|
296
|
+
CREATE INDEX IF NOT EXISTS idx_folders_downloaded_created_at ON folders_downloaded(created_at DESC)
|
|
297
|
+
`,await h`
|
|
298
|
+
CREATE INDEX IF NOT EXISTS idx_folders_downloaded_folder_user ON folders_downloaded(folder_id, downloaded_by_id) WHERE deleted_at IS NULL
|
|
299
|
+
`,await h`
|
|
300
|
+
CREATE INDEX IF NOT EXISTS idx_folders_downloaded_active ON folders_downloaded(is_blocked, is_locked) WHERE deleted_at IS NULL AND is_blocked = false
|
|
301
|
+
`}async down(h){await h`DROP TABLE IF EXISTS folders_downloaded CASCADE`}getVersion(){return"20251225174633787"}getDependencies(){return[j]}}D=p([R.migration()],D);import{decorator as S}from"@ooneex/migrations";class E{async up(h){await h`
|
|
302
|
+
CREATE TABLE IF NOT EXISTS folders_shared (
|
|
303
|
+
id VARCHAR(25) PRIMARY KEY,
|
|
304
|
+
folder_id VARCHAR(25),
|
|
305
|
+
shared_with VARCHAR(255),
|
|
306
|
+
shared_by_id VARCHAR(25),
|
|
307
|
+
permission VARCHAR(50),
|
|
308
|
+
expires_at TIMESTAMPTZ,
|
|
309
|
+
is_locked BOOLEAN DEFAULT false,
|
|
310
|
+
locked_at TIMESTAMPTZ,
|
|
311
|
+
is_blocked BOOLEAN DEFAULT false,
|
|
312
|
+
blocked_at TIMESTAMPTZ,
|
|
313
|
+
block_reason TEXT,
|
|
314
|
+
is_public BOOLEAN DEFAULT true,
|
|
315
|
+
language VARCHAR(10),
|
|
316
|
+
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
317
|
+
updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
318
|
+
deleted_at TIMESTAMPTZ,
|
|
319
|
+
CONSTRAINT fk_folders_shared_folder FOREIGN KEY (folder_id) REFERENCES folders(id) ON DELETE CASCADE
|
|
320
|
+
)
|
|
321
|
+
`,await h`
|
|
322
|
+
CREATE INDEX IF NOT EXISTS idx_folders_shared_folder_id ON folders_shared(folder_id)
|
|
323
|
+
`,await h`
|
|
324
|
+
CREATE INDEX IF NOT EXISTS idx_folders_shared_shared_by_id ON folders_shared(shared_by_id)
|
|
325
|
+
`,await h`
|
|
326
|
+
CREATE INDEX IF NOT EXISTS idx_folders_shared_permission ON folders_shared(permission)
|
|
327
|
+
`,await h`
|
|
328
|
+
CREATE INDEX IF NOT EXISTS idx_folders_shared_expires_at ON folders_shared(expires_at)
|
|
329
|
+
`,await h`
|
|
330
|
+
CREATE INDEX IF NOT EXISTS idx_folders_shared_language ON folders_shared(language)
|
|
331
|
+
`,await h`
|
|
332
|
+
CREATE INDEX IF NOT EXISTS idx_folders_shared_deleted_at ON folders_shared(deleted_at)
|
|
333
|
+
`,await h`
|
|
334
|
+
CREATE INDEX IF NOT EXISTS idx_folders_shared_is_public ON folders_shared(is_public) WHERE deleted_at IS NULL
|
|
335
|
+
`,await h`
|
|
336
|
+
CREATE INDEX IF NOT EXISTS idx_folders_shared_created_at ON folders_shared(created_at DESC)
|
|
337
|
+
`,await h`
|
|
338
|
+
CREATE INDEX IF NOT EXISTS idx_folders_shared_folder_user ON folders_shared(folder_id, shared_by_id) WHERE deleted_at IS NULL
|
|
339
|
+
`,await h`
|
|
340
|
+
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
|
|
341
|
+
`,await h`
|
|
342
|
+
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()
|
|
343
|
+
`}async down(h){await h`DROP TABLE IF EXISTS folders_shared CASCADE`}getVersion(){return"20251225174634788"}getDependencies(){return[j]}}E=p([S.migration()],E);import{decorator as T}from"@ooneex/migrations";class G{async up(h){await h`
|
|
344
|
+
CREATE TABLE IF NOT EXISTS folders_reports (
|
|
345
|
+
id VARCHAR(25) PRIMARY KEY,
|
|
346
|
+
folder_id VARCHAR(25),
|
|
347
|
+
reason VARCHAR(255) NOT NULL,
|
|
348
|
+
description TEXT,
|
|
349
|
+
reported_by VARCHAR(255),
|
|
350
|
+
reported_by_id VARCHAR(25),
|
|
351
|
+
status_id VARCHAR(25),
|
|
352
|
+
is_locked BOOLEAN DEFAULT false,
|
|
353
|
+
locked_at TIMESTAMPTZ,
|
|
354
|
+
is_blocked BOOLEAN DEFAULT false,
|
|
355
|
+
blocked_at TIMESTAMPTZ,
|
|
356
|
+
block_reason TEXT,
|
|
357
|
+
is_public BOOLEAN DEFAULT true,
|
|
358
|
+
language VARCHAR(10),
|
|
359
|
+
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
360
|
+
updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
361
|
+
deleted_at TIMESTAMPTZ,
|
|
362
|
+
CONSTRAINT fk_folders_reports_folder FOREIGN KEY (folder_id) REFERENCES folders(id) ON DELETE CASCADE,
|
|
363
|
+
CONSTRAINT fk_folders_reports_status FOREIGN KEY (status_id) REFERENCES statuses(id) ON DELETE SET NULL
|
|
364
|
+
)
|
|
365
|
+
`,await h`
|
|
366
|
+
CREATE INDEX IF NOT EXISTS idx_folders_reports_folder_id ON folders_reports(folder_id)
|
|
367
|
+
`,await h`
|
|
368
|
+
CREATE INDEX IF NOT EXISTS idx_folders_reports_reported_by_id ON folders_reports(reported_by_id)
|
|
369
|
+
`,await h`
|
|
370
|
+
CREATE INDEX IF NOT EXISTS idx_folders_reports_status_id ON folders_reports(status_id)
|
|
371
|
+
`,await h`
|
|
372
|
+
CREATE INDEX IF NOT EXISTS idx_folders_reports_reason ON folders_reports(reason)
|
|
373
|
+
`,await h`
|
|
374
|
+
CREATE INDEX IF NOT EXISTS idx_folders_reports_language ON folders_reports(language)
|
|
375
|
+
`,await h`
|
|
376
|
+
CREATE INDEX IF NOT EXISTS idx_folders_reports_deleted_at ON folders_reports(deleted_at)
|
|
377
|
+
`,await h`
|
|
378
|
+
CREATE INDEX IF NOT EXISTS idx_folders_reports_is_public ON folders_reports(is_public) WHERE deleted_at IS NULL
|
|
379
|
+
`,await h`
|
|
380
|
+
CREATE INDEX IF NOT EXISTS idx_folders_reports_created_at ON folders_reports(created_at DESC)
|
|
381
|
+
`,await h`
|
|
382
|
+
CREATE INDEX IF NOT EXISTS idx_folders_reports_folder_status ON folders_reports(folder_id, status_id) WHERE deleted_at IS NULL
|
|
383
|
+
`,await h`
|
|
384
|
+
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
|
|
385
|
+
`}async down(h){await h`DROP TABLE IF EXISTS folders_reports CASCADE`}getVersion(){return"20251225174635789"}getDependencies(){return[j,I]}}G=p([T.migration()],G);export{G as Migration20251225174635789,E as Migration20251225174634788,D as Migration20251225174633787,C as Migration20251225174632786,B as Migration20251225174631785,A as Migration20251225174630785,z as Migration20251225174629784,v as Migration20251225174628784,q as Migration20251225174627783,j as Migration20251225174626782};
|
|
386
|
+
|
|
387
|
+
//# debugId=41A4839712AA4B9764756E2164756E21
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["src/migrations/folder/Migration20251225174626782.ts", "src/migrations/folder/Migration20251225174627783.ts", "src/migrations/folder/Migration20251225174628784.ts", "src/migrations/folder/Migration20251225174629784.ts", "src/migrations/folder/Migration20251225174630785.ts", "src/migrations/folder/Migration20251225174631785.ts", "src/migrations/folder/Migration20251225174632786.ts", "src/migrations/folder/Migration20251225174633787.ts", "src/migrations/folder/Migration20251225174634788.ts", "src/migrations/folder/Migration20251225174635789.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import { decorator, type IMigration, type MigrationClassType } from \"@ooneex/migrations\";\nimport type { TransactionSQL } from \"bun\";\nimport { Migration20251225173348643 } from \"../common/Migration20251225173348643\";\n\n@decorator.migration()\nexport class Migration20251225174626782 implements IMigration {\n public async up(tx: TransactionSQL): Promise<void> {\n await tx`\n CREATE TABLE IF NOT EXISTS folders (\n id VARCHAR(25) PRIMARY KEY,\n name VARCHAR(255) NOT NULL,\n color_id VARCHAR(25),\n description TEXT,\n parent_id VARCHAR(25),\n context VARCHAR(255),\n context_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_color FOREIGN KEY (color_id) REFERENCES colors(id) ON DELETE SET NULL,\n CONSTRAINT fk_folders_parent FOREIGN KEY (parent_id) REFERENCES folders(id) ON DELETE CASCADE\n )\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_name ON folders(name)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_color_id ON folders(color_id)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_parent_id ON folders(parent_id)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_context ON folders(context, context_id)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_language ON folders(language)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_deleted_at ON folders(deleted_at)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_is_public ON folders(is_public) WHERE deleted_at IS NULL\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_name_lower ON folders(LOWER(name)) WHERE deleted_at IS NULL\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_parent_name ON folders(parent_id, name) WHERE deleted_at IS NULL\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_created_at ON folders(created_at DESC)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_updated_at ON folders(updated_at DESC)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_active ON folders(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 CASCADE`;\n }\n\n public getVersion(): string {\n return \"20251225174626782\";\n }\n\n public getDependencies(): MigrationClassType[] {\n return [\n Migration20251225173348643, // Colors table (for color_id foreign key)\n ];\n }\n}\n",
|
|
6
|
+
"import { decorator, type IMigration, type MigrationClassType } from \"@ooneex/migrations\";\nimport type { TransactionSQL } from \"bun\";\nimport { Migration20251225174626782 } from \"./Migration20251225174626782\";\n\n@decorator.migration()\nexport class Migration20251225174627783 implements IMigration {\n public async up(tx: TransactionSQL): Promise<void> {\n await tx`\n CREATE TABLE IF NOT EXISTS folders_stats (\n id VARCHAR(25) PRIMARY KEY,\n folder_id VARCHAR(25),\n likes_count INT DEFAULT 0,\n dislikes_count INT DEFAULT 0,\n comments_count INT DEFAULT 0,\n shares_count INT DEFAULT 0,\n saves_count INT DEFAULT 0,\n downloads_count INT DEFAULT 0,\n views_count INT DEFAULT 0,\n reports_count INT DEFAULT 0,\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_stats_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_stats_folder_id ON folders_stats(folder_id)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_stats_likes_count ON folders_stats(likes_count DESC)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_stats_views_count ON folders_stats(views_count DESC)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_stats_downloads_count ON folders_stats(downloads_count DESC)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_stats_language ON folders_stats(language)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_stats_deleted_at ON folders_stats(deleted_at)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_stats_is_public ON folders_stats(is_public) WHERE deleted_at IS NULL\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_stats_popular ON folders_stats(is_public, likes_count DESC, views_count DESC) WHERE deleted_at IS NULL\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_stats_created_at ON folders_stats(created_at DESC)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_stats_active ON folders_stats(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_stats CASCADE`;\n }\n\n public getVersion(): string {\n return \"20251225174627783\";\n }\n\n public getDependencies(): MigrationClassType[] {\n return [\n Migration20251225174626782, // Folders table (for folder_id foreign key)\n ];\n }\n}\n",
|
|
7
|
+
"import { decorator, type IMigration, type MigrationClassType } from \"@ooneex/migrations\";\nimport type { TransactionSQL } from \"bun\";\nimport { Migration20251225174626782 } from \"./Migration20251225174626782\";\n\n@decorator.migration()\nexport class Migration20251225174628784 implements IMigration {\n public async up(tx: TransactionSQL): Promise<void> {\n await tx`\n CREATE TABLE IF NOT EXISTS folders_comments (\n id VARCHAR(25) PRIMARY KEY,\n folder_id VARCHAR(25),\n comment TEXT NOT NULL,\n commented_by VARCHAR(255),\n commented_by_id VARCHAR(25),\n parent_comment_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_comments_folder FOREIGN KEY (folder_id) REFERENCES folders(id) ON DELETE CASCADE,\n CONSTRAINT fk_folders_comments_parent FOREIGN KEY (parent_comment_id) REFERENCES folders_comments(id) ON DELETE CASCADE\n )\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_comments_folder_id ON folders_comments(folder_id)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_comments_commented_by_id ON folders_comments(commented_by_id)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_comments_parent_comment_id ON folders_comments(parent_comment_id)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_comments_language ON folders_comments(language)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_comments_deleted_at ON folders_comments(deleted_at)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_comments_is_public ON folders_comments(is_public) WHERE deleted_at IS NULL\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_comments_created_at ON folders_comments(created_at DESC)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_comments_folder_created ON folders_comments(folder_id, created_at DESC) WHERE deleted_at IS NULL\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_comments_active ON folders_comments(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_comments CASCADE`;\n }\n\n public getVersion(): string {\n return \"20251225174628784\";\n }\n\n public getDependencies(): MigrationClassType[] {\n return [\n Migration20251225174626782, // Folders table (for folder_id foreign key)\n ];\n }\n}\n",
|
|
8
|
+
"import { decorator, type IMigration, type MigrationClassType } from \"@ooneex/migrations\";\nimport type { TransactionSQL } from \"bun\";\nimport { Migration20251225174626782 } from \"./Migration20251225174626782\";\n\n@decorator.migration()\nexport class Migration20251225174629784 implements IMigration {\n public async up(tx: TransactionSQL): Promise<void> {\n await tx`\n CREATE TABLE IF NOT EXISTS folders_liked (\n id VARCHAR(25) PRIMARY KEY,\n folder_id VARCHAR(25),\n liked_by VARCHAR(255),\n liked_by_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_liked_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_liked_folder_id ON folders_liked(folder_id)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_liked_liked_by_id ON folders_liked(liked_by_id)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_liked_language ON folders_liked(language)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_liked_deleted_at ON folders_liked(deleted_at)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_liked_is_public ON folders_liked(is_public) WHERE deleted_at IS NULL\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_liked_created_at ON folders_liked(created_at DESC)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_liked_folder_user ON folders_liked(folder_id, liked_by_id) WHERE deleted_at IS NULL\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_liked_active ON folders_liked(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_liked CASCADE`;\n }\n\n public getVersion(): string {\n return \"20251225174629784\";\n }\n\n public getDependencies(): MigrationClassType[] {\n return [\n Migration20251225174626782, // Folders table (for folder_id foreign key)\n ];\n }\n}\n",
|
|
9
|
+
"import { decorator, type IMigration, type MigrationClassType } from \"@ooneex/migrations\";\nimport type { TransactionSQL } from \"bun\";\nimport { Migration20251225174626782 } from \"./Migration20251225174626782\";\n\n@decorator.migration()\nexport class Migration20251225174630785 implements IMigration {\n public async up(tx: TransactionSQL): Promise<void> {\n await tx`\n CREATE TABLE IF NOT EXISTS folders_disliked (\n id VARCHAR(25) PRIMARY KEY,\n folder_id VARCHAR(25),\n disliked_by VARCHAR(255),\n disliked_by_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_disliked_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_disliked_folder_id ON folders_disliked(folder_id)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_disliked_disliked_by_id ON folders_disliked(disliked_by_id)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_disliked_language ON folders_disliked(language)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_disliked_deleted_at ON folders_disliked(deleted_at)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_disliked_is_public ON folders_disliked(is_public) WHERE deleted_at IS NULL\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_disliked_created_at ON folders_disliked(created_at DESC)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_disliked_folder_user ON folders_disliked(folder_id, disliked_by_id) WHERE deleted_at IS NULL\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_disliked_active ON folders_disliked(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_disliked CASCADE`;\n }\n\n public getVersion(): string {\n return \"20251225174630785\";\n }\n\n public getDependencies(): MigrationClassType[] {\n return [\n Migration20251225174626782, // Folders table (for folder_id foreign key)\n ];\n }\n}\n",
|
|
10
|
+
"import { decorator, type IMigration, type MigrationClassType } from \"@ooneex/migrations\";\nimport type { TransactionSQL } from \"bun\";\nimport { Migration20251225174626782 } from \"./Migration20251225174626782\";\n\n@decorator.migration()\nexport class Migration20251225174631785 implements IMigration {\n public async up(tx: TransactionSQL): Promise<void> {\n await tx`\n CREATE TABLE IF NOT EXISTS folders_viewed (\n id VARCHAR(25) PRIMARY KEY,\n folder_id VARCHAR(25),\n viewed_by VARCHAR(255),\n viewed_by_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_viewed_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_viewed_folder_id ON folders_viewed(folder_id)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_viewed_viewed_by_id ON folders_viewed(viewed_by_id)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_viewed_language ON folders_viewed(language)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_viewed_deleted_at ON folders_viewed(deleted_at)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_viewed_is_public ON folders_viewed(is_public) WHERE deleted_at IS NULL\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_viewed_created_at ON folders_viewed(created_at DESC)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_viewed_folder_user ON folders_viewed(folder_id, viewed_by_id) WHERE deleted_at IS NULL\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_viewed_active ON folders_viewed(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_viewed CASCADE`;\n }\n\n public getVersion(): string {\n return \"20251225174631785\";\n }\n\n public getDependencies(): MigrationClassType[] {\n return [\n Migration20251225174626782, // Folders table (for folder_id foreign key)\n ];\n }\n}\n",
|
|
11
|
+
"import { decorator, type IMigration, type MigrationClassType } from \"@ooneex/migrations\";\nimport type { TransactionSQL } from \"bun\";\nimport { Migration20251225174626782 } from \"./Migration20251225174626782\";\n\n@decorator.migration()\nexport class Migration20251225174632786 implements IMigration {\n public async up(tx: TransactionSQL): Promise<void> {\n await tx`\n CREATE TABLE IF NOT EXISTS folders_saved (\n id VARCHAR(25) PRIMARY KEY,\n folder_id VARCHAR(25),\n saved_by VARCHAR(255),\n saved_by_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_saved_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_saved_folder_id ON folders_saved(folder_id)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_saved_saved_by_id ON folders_saved(saved_by_id)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_saved_language ON folders_saved(language)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_saved_deleted_at ON folders_saved(deleted_at)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_saved_is_public ON folders_saved(is_public) WHERE deleted_at IS NULL\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_saved_created_at ON folders_saved(created_at DESC)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_saved_folder_user ON folders_saved(folder_id, saved_by_id) WHERE deleted_at IS NULL\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_saved_active ON folders_saved(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_saved CASCADE`;\n }\n\n public getVersion(): string {\n return \"20251225174632786\";\n }\n\n public getDependencies(): MigrationClassType[] {\n return [\n Migration20251225174626782, // Folders table (for folder_id foreign key)\n ];\n }\n}\n",
|
|
12
|
+
"import { decorator, type IMigration, type MigrationClassType } from \"@ooneex/migrations\";\nimport type { TransactionSQL } from \"bun\";\nimport { Migration20251225174626782 } from \"./Migration20251225174626782\";\n\n@decorator.migration()\nexport class Migration20251225174633787 implements IMigration {\n public async up(tx: TransactionSQL): Promise<void> {\n await tx`\n CREATE TABLE IF NOT EXISTS folders_downloaded (\n id VARCHAR(25) PRIMARY KEY,\n folder_id VARCHAR(25),\n downloaded_by VARCHAR(255),\n downloaded_by_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_downloaded_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_downloaded_folder_id ON folders_downloaded(folder_id)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_downloaded_downloaded_by_id ON folders_downloaded(downloaded_by_id)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_downloaded_language ON folders_downloaded(language)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_downloaded_deleted_at ON folders_downloaded(deleted_at)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_downloaded_is_public ON folders_downloaded(is_public) WHERE deleted_at IS NULL\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_downloaded_created_at ON folders_downloaded(created_at DESC)\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_downloaded_folder_user ON folders_downloaded(folder_id, downloaded_by_id) WHERE deleted_at IS NULL\n `;\n\n await tx`\n CREATE INDEX IF NOT EXISTS idx_folders_downloaded_active ON folders_downloaded(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_downloaded CASCADE`;\n }\n\n public getVersion(): string {\n return \"20251225174633787\";\n }\n\n public getDependencies(): MigrationClassType[] {\n return [\n Migration20251225174626782, // Folders table (for folder_id foreign key)\n ];\n }\n}\n",
|
|
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
|
+
"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
|
+
],
|
|
16
|
+
"mappings": "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",
|
|
17
|
+
"debugId": "41A4839712AA4B9764756E2164756E21",
|
|
18
|
+
"names": []
|
|
19
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { IMigration, MigrationClassType } from "@ooneex/migrations";
|
|
2
|
+
import { TransactionSQL } from "bun";
|
|
3
|
+
declare class Migration20251225181154477 implements IMigration {
|
|
4
|
+
up(tx: TransactionSQL): Promise<void>;
|
|
5
|
+
down(tx: TransactionSQL): Promise<void>;
|
|
6
|
+
getVersion(): string;
|
|
7
|
+
getDependencies(): MigrationClassType[];
|
|
8
|
+
}
|
|
9
|
+
import { IMigration as IMigration2, MigrationClassType as MigrationClassType2 } from "@ooneex/migrations";
|
|
10
|
+
import { TransactionSQL as TransactionSQL2 } from "bun";
|
|
11
|
+
declare class Migration20251225181154480 implements IMigration2 {
|
|
12
|
+
up(tx: TransactionSQL2): Promise<void>;
|
|
13
|
+
down(tx: TransactionSQL2): Promise<void>;
|
|
14
|
+
getVersion(): string;
|
|
15
|
+
getDependencies(): MigrationClassType2[];
|
|
16
|
+
}
|
|
17
|
+
import { IMigration as IMigration3, MigrationClassType as MigrationClassType3 } from "@ooneex/migrations";
|
|
18
|
+
import { TransactionSQL as TransactionSQL3 } from "bun";
|
|
19
|
+
declare class Migration20251225181154482 implements IMigration3 {
|
|
20
|
+
up(tx: TransactionSQL3): Promise<void>;
|
|
21
|
+
down(tx: TransactionSQL3): Promise<void>;
|
|
22
|
+
getVersion(): string;
|
|
23
|
+
getDependencies(): MigrationClassType3[];
|
|
24
|
+
}
|
|
25
|
+
import { IMigration as IMigration4, MigrationClassType as MigrationClassType4 } from "@ooneex/migrations";
|
|
26
|
+
import { TransactionSQL as TransactionSQL4 } from "bun";
|
|
27
|
+
declare class Migration20251225181154484 implements IMigration4 {
|
|
28
|
+
up(tx: TransactionSQL4): Promise<void>;
|
|
29
|
+
down(tx: TransactionSQL4): Promise<void>;
|
|
30
|
+
getVersion(): string;
|
|
31
|
+
getDependencies(): MigrationClassType4[];
|
|
32
|
+
}
|
|
33
|
+
import { IMigration as IMigration5, MigrationClassType as MigrationClassType5 } from "@ooneex/migrations";
|
|
34
|
+
import { TransactionSQL as TransactionSQL5 } from "bun";
|
|
35
|
+
declare class Migration20251225181154486 implements IMigration5 {
|
|
36
|
+
up(tx: TransactionSQL5): Promise<void>;
|
|
37
|
+
down(tx: TransactionSQL5): Promise<void>;
|
|
38
|
+
getVersion(): string;
|
|
39
|
+
getDependencies(): MigrationClassType5[];
|
|
40
|
+
}
|
|
41
|
+
import { IMigration as IMigration6, MigrationClassType as MigrationClassType6 } from "@ooneex/migrations";
|
|
42
|
+
import { TransactionSQL as TransactionSQL6 } from "bun";
|
|
43
|
+
declare class Migration20251225181154489 implements IMigration6 {
|
|
44
|
+
up(tx: TransactionSQL6): Promise<void>;
|
|
45
|
+
down(tx: TransactionSQL6): Promise<void>;
|
|
46
|
+
getVersion(): string;
|
|
47
|
+
getDependencies(): MigrationClassType6[];
|
|
48
|
+
}
|
|
49
|
+
import { IMigration as IMigration7, MigrationClassType as MigrationClassType7 } from "@ooneex/migrations";
|
|
50
|
+
import { TransactionSQL as TransactionSQL7 } from "bun";
|
|
51
|
+
declare class Migration20251225181154491 implements IMigration7 {
|
|
52
|
+
up(tx: TransactionSQL7): Promise<void>;
|
|
53
|
+
down(tx: TransactionSQL7): Promise<void>;
|
|
54
|
+
getVersion(): string;
|
|
55
|
+
getDependencies(): MigrationClassType7[];
|
|
56
|
+
}
|
|
57
|
+
export { Migration20251225181154491, Migration20251225181154489, Migration20251225181154486, Migration20251225181154484, Migration20251225181154482, Migration20251225181154480, Migration20251225181154477 };
|