-
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathDatabaseStrings.ts
More file actions
133 lines (114 loc) · 4.87 KB
/
Copy pathDatabaseStrings.ts
File metadata and controls
133 lines (114 loc) · 4.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
export class DbPaths {
// Manufacturer
static modules = 'modules' as const;
static moduleINs = 'module_ins' as const;
static moduleOUTs = 'module_outs' as const;
static manufacturers = 'manufacturers' as const;
static user_modules = 'user_modules' as const;
static module_collections = 'module_collections' as const;
static module_collection_entries = 'module_collection_entries' as const;
static racks = 'racks' as const;
static rack_modules = 'rack_modules' as const;
static rack_modules_grouped_by_moduleid = 'rack_modules_grouped_by_moduleid' as const;
static patches_for_modules = 'patches_for_modules' as const;
static patches = 'patches' as const;
static patch_connections = 'patch_connections' as const;
static patch_module_instances = 'patch_module_instances' as const;
static module_tags = 'module_tags' as const;
static module_panels = 'module_panels' as const;
static tags = 'tags' as const;
static user_module_tags = 'user_module_tags' as const;
static standards = 'standards' as const;
static profiles = 'profiles' as const;
static comments = 'comments' as const;
static module_flags = 'module_flags' as const;
static module_flag_counts = 'module_flag_counts' as const;
}
export class DbStoragePaths {
static module_panels = 'module-panels' as const;
static racks = 'racks' as const;
static manufacturer_logos = 'manufacturer-logos' as const;
static module_collections = 'module-collections' as const;
}
const SUPABASE_STORAGE_BASE = 'https://sozmatmywjpstwidzlss.supabase.co/storage/v1/object/public/';
/** Ready-to-use public base URLs for each storage bucket. Append a filename to get a full asset URL. */
export class StorageUrls {
static modulePanels = `${SUPABASE_STORAGE_BASE}${DbStoragePaths.module_panels}/`;
static manufacturerLogos = `${SUPABASE_STORAGE_BASE}${DbStoragePaths.manufacturer_logos}/`;
static moduleCollections = `${SUPABASE_STORAGE_BASE}${DbStoragePaths.module_collections}/`;
static racks = `${SUPABASE_STORAGE_BASE}${DbStoragePaths.racks}/`;
}
export class QueryJoins {
// Manufacturer
static manufacturer: string = 'manufacturer:manufacturerId(name,id,logo)';
// Standard
static standard: string = 'standard:standards!modules_standard_fkey(name,id)';
// Patch
static patch: string = 'patch:patches!patch_connections_patchid_fkey(*)';
// Patch Connections
static patch_connections: string = 'patch_connections:patch_connections!patch_connections_patchid_fkey(*)';
// Author
static author: string = 'author:authorid(username,id)';
static publicAuthorGate(alias = 'author_profile_gate'): string {
return `${ alias }:authorid!inner(public)`;
}
// Rack
static rack: string = 'rack:rackid(*,author:authorid(username,id))';
// Rack Modules
static rackModules: string = 'rackModules:rackid(*)';
// Module Foreign Key in Rack Modules
static module_fk_rackmodules: string = `module:modules!rack_modules_moduleid_fkey(
id,
name,
hp,
weight,
depth,
powerPos12,
powerNeg12,
powerPos5,
manufacturer:manufacturerId(name,id),
standard:standards!modules_standard_fkey(name,id),
tags:${ DbPaths.module_tags }(id,tag:${ DbPaths.tags }(*),voteCount:${ DbPaths.user_module_tags }(moduletagid)),
panels:module_panels!module_panels_moduleid_fkey(*),
ins:${ DbPaths.moduleINs }(*),
outs:${ DbPaths.moduleOUTs }(*)
)`;
// Module Tags
static module_tags: string = `tags:${ DbPaths.module_tags }(id,tag:${ DbPaths.tags }(*),voteCount:${ DbPaths.user_module_tags }(moduletagid))`;
// Module Panels
static module_panels: string = `panels:${ DbPaths.module_panels }!module_panels_moduleid_fkey(*)`;
// Module Collections
static moduleCollection: string = 'collection:module_collections!module_collection_entries_collection_id_fkey(*)';
static moduleCollectionEntries: string = `entries:${ DbPaths.module_collection_entries }(*)`;
static collectionAuthor: string = 'author:authorid(username,id)';
static collectionModule: string = `module:modules!module_collection_entries_module_id_fkey(
id,
name,
description,
hp,
public,
manufacturer:manufacturerId(name,id),
standard:standards!modules_standard_fkey(name,id),
panels:${ DbPaths.module_panels }!module_panels_moduleid_fkey(*),
created,
updated
)`;
static collectionEntryModule: string = `module:modules!module_collection_entries_module_id_fkey(
id,
name,
description,
hp,
public,
manufacturer:manufacturerId(name,id),
standard:standards!modules_standard_fkey(name,id),
panels:${ DbPaths.module_panels }!module_panels_moduleid_fkey(*),
created,
updated
)`;
// Module Inputs
static ins: string = `ins:${ DbPaths.moduleINs }(*)`;
// Module Outputs
static outs: string = `outs:${ DbPaths.moduleOUTs }(*)`;
// Module Inputs and Outputs
static insOuts: string = `ins:${ DbPaths.moduleINs }(*), outs:${ DbPaths.moduleOUTs }(*)`;
}