Compare commits
	
		
			1 Commits
		
	
	
		
			06e1474396
			...
			postgres
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 2d1668a63a | 
							
								
								
									
										338
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										338
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							| @@ -115,7 +115,7 @@ dependencies = [ | |||||||
|  "log", |  "log", | ||||||
|  "pin-project-lite", |  "pin-project-lite", | ||||||
|  "tokio", |  "tokio", | ||||||
|  "tokio-rustls 0.23.3", |  "tokio-rustls 0.23.4", | ||||||
|  "tungstenite", |  "tungstenite", | ||||||
|  "webpki-roots 0.22.3", |  "webpki-roots 0.22.3", | ||||||
| ] | ] | ||||||
| @@ -202,15 +202,6 @@ dependencies = [ | |||||||
|  "generic-array 0.12.4", |  "generic-array 0.12.4", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] |  | ||||||
| name = "block-buffer" |  | ||||||
| version = "0.9.0" |  | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" |  | ||||||
| checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" |  | ||||||
| dependencies = [ |  | ||||||
|  "generic-array 0.14.5", |  | ||||||
| ] |  | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "block-buffer" | name = "block-buffer" | ||||||
| version = "0.10.2" | version = "0.10.2" | ||||||
| @@ -354,7 +345,7 @@ dependencies = [ | |||||||
|  "hmac", |  "hmac", | ||||||
|  "percent-encoding", |  "percent-encoding", | ||||||
|  "rand 0.8.5", |  "rand 0.8.5", | ||||||
|  "sha2 0.10.2", |  "sha2", | ||||||
|  "subtle", |  "subtle", | ||||||
|  "time 0.3.9", |  "time 0.3.9", | ||||||
|  "version_check", |  "version_check", | ||||||
| @@ -495,13 +486,13 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "dashmap" | name = "dashmap" | ||||||
| version = "5.2.0" | version = "5.3.3" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "4c8858831f7781322e539ea39e72449c46b059638250c14344fec8d0aa6e539c" | checksum = "391b56fbd302e585b7a9494fb70e40949567b1cf9003a8e4a6041a1687c26573" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "cfg-if 1.0.0", |  "cfg-if 1.0.0", | ||||||
|  "num_cpus", |  "hashbrown 0.12.1", | ||||||
|  "parking_lot 0.12.0", |  "lock_api", | ||||||
|  "serde", |  "serde", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| @@ -575,15 +566,6 @@ dependencies = [ | |||||||
|  "generic-array 0.12.4", |  "generic-array 0.12.4", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] |  | ||||||
| name = "digest" |  | ||||||
| version = "0.9.0" |  | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" |  | ||||||
| checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" |  | ||||||
| dependencies = [ |  | ||||||
|  "generic-array 0.14.5", |  | ||||||
| ] |  | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "digest" | name = "digest" | ||||||
| version = "0.10.3" | version = "0.10.3" | ||||||
| @@ -941,7 +923,7 @@ dependencies = [ | |||||||
|  "indexmap", |  "indexmap", | ||||||
|  "slab", |  "slab", | ||||||
|  "tokio", |  "tokio", | ||||||
|  "tokio-util 0.7.1", |  "tokio-util 0.7.2", | ||||||
|  "tracing", |  "tracing", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| @@ -954,13 +936,19 @@ dependencies = [ | |||||||
|  "ahash", |  "ahash", | ||||||
| ] | ] | ||||||
|  |  | ||||||
|  | [[package]] | ||||||
|  | name = "hashbrown" | ||||||
|  | version = "0.12.1" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "db0d4cf898abf0081f964436dc980e96670a0f36863e4b83aaacdb65c9d7ccc3" | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "hashlink" | name = "hashlink" | ||||||
| version = "0.7.0" | version = "0.7.0" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "7249a3129cbc1ffccd74857f81464a323a152173cdb134e0fd81bc803b29facf" | checksum = "7249a3129cbc1ffccd74857f81464a323a152173cdb134e0fd81bc803b29facf" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "hashbrown", |  "hashbrown 0.11.2", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| @@ -1007,9 +995,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "http" | name = "http" | ||||||
| version = "0.2.6" | version = "0.2.7" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "31f4c6746584866f0feabcc69893c5b51beef3831656a968ed7ae254cdc4fd03" | checksum = "ff8670570af52249509a86f5e3e18a08c60b177071826898fde8997cf5f6bfbb" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "bytes", |  "bytes", | ||||||
|  "fnv", |  "fnv", | ||||||
| @@ -1029,9 +1017,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "httparse" | name = "httparse" | ||||||
| version = "1.7.0" | version = "1.7.1" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "6330e8a36bd8c859f3fa6d9382911fbb7147ec39807f63b923933a247240b9ba" | checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c" | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "httpdate" | name = "httpdate" | ||||||
| @@ -1083,9 +1071,9 @@ checksum = "d87c48c02e0dc5e3b849a2041db3029fd066650f8f717c07bf8ed78ccb895cac" | |||||||
| dependencies = [ | dependencies = [ | ||||||
|  "http", |  "http", | ||||||
|  "hyper", |  "hyper", | ||||||
|  "rustls 0.20.4", |  "rustls 0.20.5", | ||||||
|  "tokio", |  "tokio", | ||||||
|  "tokio-rustls 0.23.3", |  "tokio-rustls 0.23.4", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| @@ -1143,7 +1131,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | |||||||
| checksum = "0f647032dfaa1f8b6dc29bd3edb7bbef4861b8b8007ebb118d6db284fd59f6ee" | checksum = "0f647032dfaa1f8b6dc29bd3edb7bbef4861b8b8007ebb118d6db284fd59f6ee" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "autocfg", |  "autocfg", | ||||||
|  "hashbrown", |  "hashbrown 0.11.2", | ||||||
|  "serde", |  "serde", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| @@ -1254,9 +1242,9 @@ checksum = "db13adb97ab515a3691f56e4dbab09283d0b86cb45abd991d8634a9d6f501760" | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "libc" | name = "libc" | ||||||
| version = "0.2.124" | version = "0.2.125" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "21a41fed9d98f27ab1c6d161da622a4fa35e8a54a8adc24bbf3ddd0ef70b0e50" | checksum = "5916d2ae698f6de9bfb891ad7a8d65c09d232dc58cc4ac433c7da3b2fd84bc2b" | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "libm" | name = "libm" | ||||||
| @@ -1276,18 +1264,18 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "log" | name = "log" | ||||||
| version = "0.4.16" | version = "0.4.17" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "6389c490849ff5bc16be905ae24bc913a9c8892e19b2341dbc175e14c341c2b8" | checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "cfg-if 1.0.0", |  "cfg-if 1.0.0", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "loom" | name = "loom" | ||||||
| version = "0.5.4" | version = "0.5.5" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "edc5c7d328e32cc4954e8e01193d7f0ef5ab257b5090b70a964e099a36034309" | checksum = "85eb735cf3c8ebac6cc3655c5da2f4a088b6a19133aa482471a21ba0eb5d83ab" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "cfg-if 1.0.0", |  "cfg-if 1.0.0", | ||||||
|  "generator", |  "generator", | ||||||
| @@ -1321,9 +1309,9 @@ checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "memchr" | name = "memchr" | ||||||
| version = "2.4.1" | version = "2.5.0" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" | checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "mime" | name = "mime" | ||||||
| @@ -1369,7 +1357,7 @@ dependencies = [ | |||||||
|  "kernel32-sys", |  "kernel32-sys", | ||||||
|  "libc", |  "libc", | ||||||
|  "log", |  "log", | ||||||
|  "miow 0.2.2", |  "miow", | ||||||
|  "net2", |  "net2", | ||||||
|  "slab", |  "slab", | ||||||
|  "winapi 0.2.8", |  "winapi 0.2.8", | ||||||
| @@ -1377,16 +1365,14 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "mio" | name = "mio" | ||||||
| version = "0.8.2" | version = "0.8.3" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "52da4364ffb0e4fe33a9841a98a3f3014fb964045ce4f7a45a398243c8d6b0c9" | checksum = "713d550d9b44d89174e066b7a6217ae06234c10cb47819a88290d2b353c31799" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "libc", |  "libc", | ||||||
|  "log", |  "log", | ||||||
|  "miow 0.3.7", |  | ||||||
|  "ntapi", |  | ||||||
|  "wasi 0.11.0+wasi-snapshot-preview1", |  "wasi 0.11.0+wasi-snapshot-preview1", | ||||||
|  "winapi 0.3.9", |  "windows-sys", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| @@ -1413,15 +1399,6 @@ dependencies = [ | |||||||
|  "ws2_32-sys", |  "ws2_32-sys", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] |  | ||||||
| name = "miow" |  | ||||||
| version = "0.3.7" |  | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" |  | ||||||
| checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" |  | ||||||
| dependencies = [ |  | ||||||
|  "winapi 0.3.9", |  | ||||||
| ] |  | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "multer" | name = "multer" | ||||||
| version = "2.0.2" | version = "2.0.2" | ||||||
| @@ -1438,7 +1415,7 @@ dependencies = [ | |||||||
|  "mime", |  "mime", | ||||||
|  "spin 0.9.3", |  "spin 0.9.3", | ||||||
|  "tokio", |  "tokio", | ||||||
|  "tokio-util 0.6.9", |  "tokio-util 0.6.10", | ||||||
|  "version_check", |  "version_check", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| @@ -1508,15 +1485,6 @@ dependencies = [ | |||||||
|  "winapi 0.3.9", |  "winapi 0.3.9", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] |  | ||||||
| name = "ntapi" |  | ||||||
| version = "0.3.7" |  | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" |  | ||||||
| checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f" |  | ||||||
| dependencies = [ |  | ||||||
|  "winapi 0.3.9", |  | ||||||
| ] |  | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "num-bigint" | name = "num-bigint" | ||||||
| version = "0.3.3" | version = "0.3.3" | ||||||
| @@ -1547,9 +1515,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "num-integer" | name = "num-integer" | ||||||
| version = "0.1.44" | version = "0.1.45" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" | checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "autocfg", |  "autocfg", | ||||||
|  "num-traits", |  "num-traits", | ||||||
| @@ -1557,9 +1525,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "num-iter" | name = "num-iter" | ||||||
| version = "0.1.42" | version = "0.1.43" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59" | checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "autocfg", |  "autocfg", | ||||||
|  "num-integer", |  "num-integer", | ||||||
| @@ -1568,9 +1536,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "num-traits" | name = "num-traits" | ||||||
| version = "0.2.14" | version = "0.2.15" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" | checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "autocfg", |  "autocfg", | ||||||
|  "libm", |  "libm", | ||||||
| @@ -1588,18 +1556,18 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "num_threads" | name = "num_threads" | ||||||
| version = "0.1.5" | version = "0.1.6" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "aba1801fb138d8e85e11d0fc70baf4fe1cdfffda7c6cd34a854905df588e5ed0" | checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "libc", |  "libc", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "oauth2" | name = "oauth2" | ||||||
| version = "4.1.0" | version = "4.2.0" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "80e47cfc4c0a1a519d9a025ebfbac3a2439d1b5cdf397d72dcb79b11d9920dab" | checksum = "c3bd7d544f02ae0fa9e06137962703d043870d7ad6e6d44786d6a5f20679b2c9" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "base64", |  "base64", | ||||||
|  "chrono", |  "chrono", | ||||||
| @@ -1610,7 +1578,7 @@ dependencies = [ | |||||||
|  "serde", |  "serde", | ||||||
|  "serde_json", |  "serde_json", | ||||||
|  "serde_path_to_error", |  "serde_path_to_error", | ||||||
|  "sha2 0.9.9", |  "sha2", | ||||||
|  "thiserror", |  "thiserror", | ||||||
|  "url", |  "url", | ||||||
| ] | ] | ||||||
| @@ -1635,18 +1603,30 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "openssl" | name = "openssl" | ||||||
| version = "0.10.38" | version = "0.10.40" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "0c7ae222234c30df141154f159066c5093ff73b63204dcda7121eb082fc56a95" | checksum = "fb81a6430ac911acb25fe5ac8f1d2af1b4ea8a4fdfda0f1ee4292af2e2d8eb0e" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "bitflags", |  "bitflags", | ||||||
|  "cfg-if 1.0.0", |  "cfg-if 1.0.0", | ||||||
|  "foreign-types", |  "foreign-types", | ||||||
|  "libc", |  "libc", | ||||||
|  "once_cell", |  "once_cell", | ||||||
|  |  "openssl-macros", | ||||||
|  "openssl-sys", |  "openssl-sys", | ||||||
| ] | ] | ||||||
|  |  | ||||||
|  | [[package]] | ||||||
|  | name = "openssl-macros" | ||||||
|  | version = "0.1.0" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" | ||||||
|  | dependencies = [ | ||||||
|  |  "proc-macro2", | ||||||
|  |  "quote", | ||||||
|  |  "syn", | ||||||
|  | ] | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "openssl-probe" | name = "openssl-probe" | ||||||
| version = "0.1.5" | version = "0.1.5" | ||||||
| @@ -1655,9 +1635,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "openssl-sys" | name = "openssl-sys" | ||||||
| version = "0.9.72" | version = "0.9.73" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "7e46109c383602735fa0a2e48dd2b7c892b048e1bf69e5c3b1d804b7d9c203cb" | checksum = "9d5fd19fb3e0a8191c1e34935718976a3e70c112ab9a24af6d7cadccd9d90bc0" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "autocfg", |  "autocfg", | ||||||
|  "cc", |  "cc", | ||||||
| @@ -1693,7 +1673,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | |||||||
| checksum = "87f5ec2493a61ac0506c0f4199f99070cbe83857b0337006a30f3e6719b8ef58" | checksum = "87f5ec2493a61ac0506c0f4199f99070cbe83857b0337006a30f3e6719b8ef58" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "lock_api", |  "lock_api", | ||||||
|  "parking_lot_core 0.9.2", |  "parking_lot_core 0.9.3", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| @@ -1712,9 +1692,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "parking_lot_core" | name = "parking_lot_core" | ||||||
| version = "0.9.2" | version = "0.9.3" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "995f667a6c822200b0433ac218e05582f0e2efa1b922a3fd2fbaadc5f87bab37" | checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "cfg-if 1.0.0", |  "cfg-if 1.0.0", | ||||||
|  "libc", |  "libc", | ||||||
| @@ -1860,9 +1840,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "pin-project-lite" | name = "pin-project-lite" | ||||||
| version = "0.2.8" | version = "0.2.9" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c" | checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "pin-utils" | name = "pin-utils" | ||||||
| @@ -1900,9 +1880,9 @@ checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "poise" | name = "poise" | ||||||
| version = "0.2.0" | version = "0.2.1" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "3c2eb79ba8241eb65b549e778e22a242ea30f5829f7487f10d8d95cfff9a4729" | checksum = "046256f9b3bcca8aaed17c412c0e11ccfb8273d2dfea08716e2eb81931465cd4" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "async-trait", |  "async-trait", | ||||||
|  "derivative", |  "derivative", | ||||||
| @@ -1918,9 +1898,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "poise_macros" | name = "poise_macros" | ||||||
| version = "0.2.0" | version = "0.2.1" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "15b786b4bdc58345204469420c306d8c638e465b4b1ecad7e27bf9c8a45096cf" | checksum = "94d99712c7e3cef666f344ccf5c5c729939331096d16c35eba3275028191a1af" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "darling", |  "darling", | ||||||
|  "proc-macro2", |  "proc-macro2", | ||||||
| @@ -1966,9 +1946,9 @@ checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "proc-macro2" | name = "proc-macro2" | ||||||
| version = "1.0.37" | version = "1.0.38" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "ec757218438d5fda206afc041538b2f6d889286160d649a86a24d37e1235afd1" | checksum = "9027b48e9d4c9175fa2218adf3557f91c1137021739951d4932f5f8268ac48aa" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "unicode-xid", |  "unicode-xid", | ||||||
| ] | ] | ||||||
| @@ -2077,18 +2057,18 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "ref-cast" | name = "ref-cast" | ||||||
| version = "1.0.6" | version = "1.0.7" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "300f2a835d808734ee295d45007adacb9ebb29dd3ae2424acfa17930cae541da" | checksum = "685d58625b6c2b83e4cc88a27c4bf65adb7b6b16dbdc413e515c9405b47432ab" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "ref-cast-impl", |  "ref-cast-impl", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "ref-cast-impl" | name = "ref-cast-impl" | ||||||
| version = "1.0.6" | version = "1.0.7" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "4c38e3aecd2b21cb3959637b883bb3714bc7e43f0268b9a29d3743ee3e55cdd2" | checksum = "a043824e29c94169374ac5183ac0ed43f5724dc4556b19568007486bd840fa1f" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "proc-macro2", |  "proc-macro2", | ||||||
|  "quote", |  "quote", | ||||||
| @@ -2144,7 +2124,6 @@ dependencies = [ | |||||||
|  "serde", |  "serde", | ||||||
|  "serde_json", |  "serde_json", | ||||||
|  "serde_repr", |  "serde_repr", | ||||||
|  "sqlx", |  | ||||||
|  "tokio", |  "tokio", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| @@ -2203,15 +2182,15 @@ dependencies = [ | |||||||
|  "native-tls", |  "native-tls", | ||||||
|  "percent-encoding", |  "percent-encoding", | ||||||
|  "pin-project-lite", |  "pin-project-lite", | ||||||
|  "rustls 0.20.4", |  "rustls 0.20.5", | ||||||
|  "rustls-pemfile", |  "rustls-pemfile 0.3.0", | ||||||
|  "serde", |  "serde", | ||||||
|  "serde_json", |  "serde_json", | ||||||
|  "serde_urlencoded", |  "serde_urlencoded", | ||||||
|  "tokio", |  "tokio", | ||||||
|  "tokio-native-tls", |  "tokio-native-tls", | ||||||
|  "tokio-rustls 0.23.3", |  "tokio-rustls 0.23.4", | ||||||
|  "tokio-util 0.6.9", |  "tokio-util 0.6.10", | ||||||
|  "url", |  "url", | ||||||
|  "wasm-bindgen", |  "wasm-bindgen", | ||||||
|  "wasm-bindgen-futures", |  "wasm-bindgen-futures", | ||||||
| @@ -2259,8 +2238,8 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "rocket" | name = "rocket" | ||||||
| version = "0.5.0-rc.1" | version = "0.5.0-rc.2" | ||||||
| source = "git+https://github.com/SergioBenitez/Rocket?branch=master#49d138de14074d40fb9223467434a5626782f51a" | source = "git+https://github.com/SergioBenitez/Rocket?branch=master#bf2bd0e9ede12dc227326d069cd84fc98dddf2e4" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "async-stream", |  "async-stream", | ||||||
|  "async-trait", |  "async-trait", | ||||||
| @@ -2289,7 +2268,7 @@ dependencies = [ | |||||||
|  "time 0.3.9", |  "time 0.3.9", | ||||||
|  "tokio", |  "tokio", | ||||||
|  "tokio-stream", |  "tokio-stream", | ||||||
|  "tokio-util 0.7.1", |  "tokio-util 0.7.2", | ||||||
|  "ubyte", |  "ubyte", | ||||||
|  "version_check", |  "version_check", | ||||||
|  "yansi", |  "yansi", | ||||||
| @@ -2297,8 +2276,8 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "rocket_codegen" | name = "rocket_codegen" | ||||||
| version = "0.5.0-rc.1" | version = "0.5.0-rc.2" | ||||||
| source = "git+https://github.com/SergioBenitez/Rocket?branch=master#49d138de14074d40fb9223467434a5626782f51a" | source = "git+https://github.com/SergioBenitez/Rocket?branch=master#bf2bd0e9ede12dc227326d069cd84fc98dddf2e4" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "devise", |  "devise", | ||||||
|  "glob", |  "glob", | ||||||
| @@ -2312,8 +2291,8 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "rocket_dyn_templates" | name = "rocket_dyn_templates" | ||||||
| version = "0.1.0-rc.1" | version = "0.1.0-rc.2" | ||||||
| source = "git+https://github.com/SergioBenitez/Rocket?branch=master#49d138de14074d40fb9223467434a5626782f51a" | source = "git+https://github.com/SergioBenitez/Rocket?branch=master#bf2bd0e9ede12dc227326d069cd84fc98dddf2e4" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "glob", |  "glob", | ||||||
|  "normpath", |  "normpath", | ||||||
| @@ -2324,11 +2303,12 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "rocket_http" | name = "rocket_http" | ||||||
| version = "0.5.0-rc.1" | version = "0.5.0-rc.2" | ||||||
| source = "git+https://github.com/SergioBenitez/Rocket?branch=master#49d138de14074d40fb9223467434a5626782f51a" | source = "git+https://github.com/SergioBenitez/Rocket?branch=master#bf2bd0e9ede12dc227326d069cd84fc98dddf2e4" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "cookie", |  "cookie", | ||||||
|  "either", |  "either", | ||||||
|  |  "futures", | ||||||
|  "http", |  "http", | ||||||
|  "hyper", |  "hyper", | ||||||
|  "indexmap", |  "indexmap", | ||||||
| @@ -2338,15 +2318,15 @@ dependencies = [ | |||||||
|  "percent-encoding", |  "percent-encoding", | ||||||
|  "pin-project-lite", |  "pin-project-lite", | ||||||
|  "ref-cast", |  "ref-cast", | ||||||
|  "rustls 0.20.4", |  "rustls 0.20.5", | ||||||
|  "rustls-pemfile", |  "rustls-pemfile 1.0.0", | ||||||
|  "serde", |  "serde", | ||||||
|  "smallvec", |  "smallvec", | ||||||
|  "stable-pattern", |  "stable-pattern", | ||||||
|  "state", |  "state", | ||||||
|  "time 0.3.9", |  "time 0.3.9", | ||||||
|  "tokio", |  "tokio", | ||||||
|  "tokio-rustls 0.23.3", |  "tokio-rustls 0.23.4", | ||||||
|  "uncased", |  "uncased", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| @@ -2385,9 +2365,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "rustls" | name = "rustls" | ||||||
| version = "0.20.4" | version = "0.20.5" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "4fbfeb8d0ddb84706bc597a5574ab8912817c52a397f819e5b614e2265206921" | checksum = "a024a432ae760ab3bff924ad91ce1cfa52cb57ed16e1ef32d0d249cfee1a6c13" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "log", |  "log", | ||||||
|  "ring", |  "ring", | ||||||
| @@ -2404,6 +2384,15 @@ dependencies = [ | |||||||
|  "base64", |  "base64", | ||||||
| ] | ] | ||||||
|  |  | ||||||
|  | [[package]] | ||||||
|  | name = "rustls-pemfile" | ||||||
|  | version = "1.0.0" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "e7522c9de787ff061458fe9a829dc790a3f5b22dc571694fc5883f448b94d9a9" | ||||||
|  | dependencies = [ | ||||||
|  |  "base64", | ||||||
|  | ] | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "rustversion" | name = "rustversion" | ||||||
| version = "1.0.6" | version = "1.0.6" | ||||||
| @@ -2492,9 +2481,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "serde" | name = "serde" | ||||||
| version = "1.0.136" | version = "1.0.137" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789" | checksum = "61ea8d54c77f8315140a05f4c7237403bf38b72704d031543aa1d16abbf517d1" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "serde_derive", |  "serde_derive", | ||||||
| ] | ] | ||||||
| @@ -2511,9 +2500,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "serde_derive" | name = "serde_derive" | ||||||
| version = "1.0.136" | version = "1.0.137" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9" | checksum = "1f26faba0c3959972377d3b2d306ee9f71faee9714294e41bb777f83f88578be" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "proc-macro2", |  "proc-macro2", | ||||||
|  "quote", |  "quote", | ||||||
| @@ -2522,9 +2511,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "serde_json" | name = "serde_json" | ||||||
| version = "1.0.79" | version = "1.0.81" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "8e8d9fa5c3b304765ce1fd9c4c8a3de2c8db365a5b91be52f186efc675681d95" | checksum = "9b7ce2b32a1aed03c558dc61a5cd328f15aff2dbc17daad8fb8af04d2100e15c" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "itoa", |  "itoa", | ||||||
|  "ryu", |  "ryu", | ||||||
| @@ -2542,9 +2531,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "serde_repr" | name = "serde_repr" | ||||||
| version = "0.1.7" | version = "0.1.8" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "98d0516900518c29efa217c298fa1f4e6c6ffc85ae29fd7f4ee48f176e1a9ed5" | checksum = "a2ad84e47328a31223de7fed7a4f5087f2d6ddfe586cf3ca25b7a165bc0a5aed" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "proc-macro2", |  "proc-macro2", | ||||||
|  "quote", |  "quote", | ||||||
| @@ -2617,19 +2606,6 @@ dependencies = [ | |||||||
|  "digest 0.10.3", |  "digest 0.10.3", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] |  | ||||||
| name = "sha2" |  | ||||||
| version = "0.9.9" |  | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" |  | ||||||
| checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" |  | ||||||
| dependencies = [ |  | ||||||
|  "block-buffer 0.9.0", |  | ||||||
|  "cfg-if 1.0.0", |  | ||||||
|  "cpufeatures", |  | ||||||
|  "digest 0.9.0", |  | ||||||
|  "opaque-debug 0.3.0", |  | ||||||
| ] |  | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "sha2" | name = "sha2" | ||||||
| version = "0.10.2" | version = "0.10.2" | ||||||
| @@ -2779,7 +2755,7 @@ dependencies = [ | |||||||
|  "serde", |  "serde", | ||||||
|  "serde_json", |  "serde_json", | ||||||
|  "sha-1 0.10.0", |  "sha-1 0.10.0", | ||||||
|  "sha2 0.10.2", |  "sha2", | ||||||
|  "smallvec", |  "smallvec", | ||||||
|  "sqlformat", |  "sqlformat", | ||||||
|  "sqlx-rt", |  "sqlx-rt", | ||||||
| @@ -2804,7 +2780,7 @@ dependencies = [ | |||||||
|  "proc-macro2", |  "proc-macro2", | ||||||
|  "quote", |  "quote", | ||||||
|  "serde_json", |  "serde_json", | ||||||
|  "sha2 0.10.2", |  "sha2", | ||||||
|  "sqlx-core", |  "sqlx-core", | ||||||
|  "sqlx-rt", |  "sqlx-rt", | ||||||
|  "syn", |  "syn", | ||||||
| @@ -2833,9 +2809,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "state" | name = "state" | ||||||
| version = "0.5.2" | version = "0.5.3" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "87cf4f5369e6d3044b5e365c9690f451516ac8f0954084622b49ea3fde2f6de5" | checksum = "dbe866e1e51e8260c9eed836a042a5e7f6726bb2b411dffeaa712e19c388f23b" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "loom", |  "loom", | ||||||
| ] | ] | ||||||
| @@ -2864,9 +2840,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "syn" | name = "syn" | ||||||
| version = "1.0.91" | version = "1.0.94" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "b683b2b825c8eef438b77c36a06dc262294da3d5a5813fac20da149241dcd44d" | checksum = "a07e33e919ebcd69113d5be0e4d70c5707004ff45188910106854f38b960df4a" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "proc-macro2", |  "proc-macro2", | ||||||
|  "quote", |  "quote", | ||||||
| @@ -2920,18 +2896,18 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "thiserror" | name = "thiserror" | ||||||
| version = "1.0.30" | version = "1.0.31" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417" | checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "thiserror-impl", |  "thiserror-impl", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "thiserror-impl" | name = "thiserror-impl" | ||||||
| version = "1.0.30" | version = "1.0.31" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" | checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "proc-macro2", |  "proc-macro2", | ||||||
|  "quote", |  "quote", | ||||||
| @@ -2978,9 +2954,9 @@ checksum = "42657b1a6f4d817cda8e7a0ace261fe0cc946cf3a80314390b22cc61ae080792" | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "tinyvec" | name = "tinyvec" | ||||||
| version = "1.5.1" | version = "1.6.0" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2" | checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "tinyvec_macros", |  "tinyvec_macros", | ||||||
| ] | ] | ||||||
| @@ -2993,14 +2969,14 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "tokio" | name = "tokio" | ||||||
| version = "1.17.0" | version = "1.18.2" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "2af73ac49756f3f7c01172e34a23e5d0216f6c32333757c2c61feb2bbff5a5ee" | checksum = "4903bf0427cf68dddd5aa6a93220756f8be0c34fcfa9f5e6191e103e15a31395" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "bytes", |  "bytes", | ||||||
|  "libc", |  "libc", | ||||||
|  "memchr", |  "memchr", | ||||||
|  "mio 0.8.2", |  "mio 0.8.3", | ||||||
|  "num_cpus", |  "num_cpus", | ||||||
|  "once_cell", |  "once_cell", | ||||||
|  "parking_lot 0.12.0", |  "parking_lot 0.12.0", | ||||||
| @@ -3045,11 +3021,11 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "tokio-rustls" | name = "tokio-rustls" | ||||||
| version = "0.23.3" | version = "0.23.4" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "4151fda0cf2798550ad0b34bcfc9b9dcc2a9d2471c895c68f3a8818e54f2389e" | checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "rustls 0.20.4", |  "rustls 0.20.5", | ||||||
|  "tokio", |  "tokio", | ||||||
|  "webpki 0.22.0", |  "webpki 0.22.0", | ||||||
| ] | ] | ||||||
| @@ -3067,9 +3043,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "tokio-util" | name = "tokio-util" | ||||||
| version = "0.6.9" | version = "0.6.10" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0" | checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "bytes", |  "bytes", | ||||||
|  "futures-core", |  "futures-core", | ||||||
| @@ -3081,9 +3057,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "tokio-util" | name = "tokio-util" | ||||||
| version = "0.7.1" | version = "0.7.2" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "0edfdeb067411dba2044da6d1cb2df793dd35add7888d73c16e3381ded401764" | checksum = "f988a1a1adc2fb21f9c12aa96441da33a1728193ae0b95d2be22dbd17fcb4e5c" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "bytes", |  "bytes", | ||||||
|  "futures-core", |  "futures-core", | ||||||
| @@ -3123,9 +3099,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "tracing-attributes" | name = "tracing-attributes" | ||||||
| version = "0.1.20" | version = "0.1.21" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "2e65ce065b4b5c53e73bb28912318cb8c9e9ad3921f1d669eb0e68b4c8143a2b" | checksum = "cc6b8ad3567499f98a1db7a752b07a7c8c7c7c34c332ec00effb2b0027974b7c" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "proc-macro2", |  "proc-macro2", | ||||||
|  "quote", |  "quote", | ||||||
| @@ -3144,9 +3120,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "tracing-log" | name = "tracing-log" | ||||||
| version = "0.1.2" | version = "0.1.3" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "a6923477a48e41c1951f1999ef8bb5a3023eb723ceadafe78ffb65dc366761e3" | checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "lazy_static", |  "lazy_static", | ||||||
|  "log", |  "log", | ||||||
| @@ -3190,7 +3166,7 @@ dependencies = [ | |||||||
|  "httparse", |  "httparse", | ||||||
|  "log", |  "log", | ||||||
|  "rand 0.8.5", |  "rand 0.8.5", | ||||||
|  "rustls 0.20.4", |  "rustls 0.20.5", | ||||||
|  "sha-1 0.10.0", |  "sha-1 0.10.0", | ||||||
|  "thiserror", |  "thiserror", | ||||||
|  "url", |  "url", | ||||||
| @@ -3296,9 +3272,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "unicode-bidi" | name = "unicode-bidi" | ||||||
| version = "0.3.7" | version = "0.3.8" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f" | checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "unicode-normalization" | name = "unicode-normalization" | ||||||
| @@ -3317,9 +3293,9 @@ checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "unicode-xid" | name = "unicode-xid" | ||||||
| version = "0.2.2" | version = "0.2.3" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" | checksum = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04" | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "unicode_categories" | name = "unicode_categories" | ||||||
| @@ -3578,9 +3554,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "windows-sys" | name = "windows-sys" | ||||||
| version = "0.34.0" | version = "0.36.1" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "5acdd78cb4ba54c0045ac14f62d8f94a03d10047904ae2a40afa1e99d8f70825" | checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "windows_aarch64_msvc", |  "windows_aarch64_msvc", | ||||||
|  "windows_i686_gnu", |  "windows_i686_gnu", | ||||||
| @@ -3591,33 +3567,33 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "windows_aarch64_msvc" | name = "windows_aarch64_msvc" | ||||||
| version = "0.34.0" | version = "0.36.1" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "17cffbe740121affb56fad0fc0e421804adf0ae00891205213b5cecd30db881d" | checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "windows_i686_gnu" | name = "windows_i686_gnu" | ||||||
| version = "0.34.0" | version = "0.36.1" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "2564fde759adb79129d9b4f54be42b32c89970c18ebf93124ca8870a498688ed" | checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "windows_i686_msvc" | name = "windows_i686_msvc" | ||||||
| version = "0.34.0" | version = "0.36.1" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "9cd9d32ba70453522332c14d38814bceeb747d80b3958676007acadd7e166956" | checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "windows_x86_64_gnu" | name = "windows_x86_64_gnu" | ||||||
| version = "0.34.0" | version = "0.36.1" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "cfce6deae227ee8d356d19effc141a509cc503dfd1f850622ec4b0f84428e1f4" | checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "windows_x86_64_msvc" | name = "windows_x86_64_msvc" | ||||||
| version = "0.34.0" | version = "0.36.1" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "d19538ccc21819d01deaf88d6a17eae6596a12e9aafdbb97916fb49896d89de9" | checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "winreg" | name = "winreg" | ||||||
| @@ -3646,6 +3622,6 @@ checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "zeroize" | name = "zeroize" | ||||||
| version = "1.5.4" | version = "1.5.5" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "7eb5728b8afd3f280a869ce1d4c554ffaed35f45c231fc41bfbd0381bef50317" | checksum = "94693807d016b2f2d2e14420eb3bfcca689311ff775dcf113d74ea624b7cdf07" | ||||||
|   | |||||||
| @@ -3,6 +3,7 @@ name = "reminder_rs" | |||||||
| version = "1.6.0" | version = "1.6.0" | ||||||
| authors = ["jellywx <judesouthworth@pm.me>"] | authors = ["jellywx <judesouthworth@pm.me>"] | ||||||
| edition = "2018" | edition = "2018" | ||||||
|  | workspaces = [".", "postman", "web", "entity", "migration"] | ||||||
|  |  | ||||||
| [dependencies] | [dependencies] | ||||||
| poise = "0.2" | poise = "0.2" | ||||||
| @@ -22,7 +23,6 @@ serde_repr = "0.1" | |||||||
| rmp-serde = "0.15" | rmp-serde = "0.15" | ||||||
| rand = "0.7" | rand = "0.7" | ||||||
| levenshtein = "1.0" | levenshtein = "1.0" | ||||||
| sqlx = { version = "0.5", features = ["runtime-tokio-rustls", "macros", "mysql", "bigdecimal", "chrono"]} |  | ||||||
| base64 = "0.13.0" | base64 = "0.13.0" | ||||||
|  |  | ||||||
| [dependencies.postman] | [dependencies.postman] | ||||||
|   | |||||||
| @@ -1,233 +0,0 @@ | |||||||
| CREATE DATABASE IF NOT EXISTS reminders; |  | ||||||
|  |  | ||||||
| SET FOREIGN_KEY_CHECKS=0; |  | ||||||
|  |  | ||||||
| USE reminders; |  | ||||||
|  |  | ||||||
| CREATE TABLE reminders.guilds ( |  | ||||||
|     id INT UNSIGNED UNIQUE NOT NULL AUTO_INCREMENT, |  | ||||||
|     guild BIGINT UNSIGNED UNIQUE NOT NULL, |  | ||||||
|  |  | ||||||
|     name VARCHAR(100), |  | ||||||
|  |  | ||||||
|     prefix VARCHAR(5) DEFAULT '$' NOT NULL, |  | ||||||
|     timezone VARCHAR(32) DEFAULT 'UTC' NOT NULL, |  | ||||||
|  |  | ||||||
|     default_channel_id INT UNSIGNED, |  | ||||||
|     default_username VARCHAR(32) DEFAULT 'Reminder' NOT NULL, |  | ||||||
|     default_avatar VARCHAR(512) DEFAULT 'https://raw.githubusercontent.com/reminder-bot/logos/master/Remind_Me_Bot_Logo_PPic.jpg' NOT NULL, |  | ||||||
|  |  | ||||||
|     PRIMARY KEY (id), |  | ||||||
|     FOREIGN KEY (default_channel_id) REFERENCES reminders.channels(id) ON DELETE SET NULL |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| CREATE TABLE reminders.channels ( |  | ||||||
|     id INT UNSIGNED UNIQUE NOT NULL AUTO_INCREMENT, |  | ||||||
|     channel BIGINT UNSIGNED UNIQUE NOT NULL, |  | ||||||
|  |  | ||||||
|     name VARCHAR(100), |  | ||||||
|  |  | ||||||
|     nudge SMALLINT NOT NULL DEFAULT 0, |  | ||||||
|     blacklisted BOOL NOT NULL DEFAULT FALSE, |  | ||||||
|  |  | ||||||
|     webhook_id BIGINT UNSIGNED UNIQUE, |  | ||||||
|     webhook_token TEXT, |  | ||||||
|  |  | ||||||
|     paused BOOL NOT NULL DEFAULT 0, |  | ||||||
|     paused_until TIMESTAMP, |  | ||||||
|  |  | ||||||
|     guild_id INT UNSIGNED, |  | ||||||
|  |  | ||||||
|     PRIMARY KEY (id), |  | ||||||
|     FOREIGN KEY (guild_id) REFERENCES reminders.guilds(id) ON DELETE CASCADE |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| CREATE TABLE reminders.users ( |  | ||||||
|     id INT UNSIGNED AUTO_INCREMENT UNIQUE NOT NULL, |  | ||||||
|     user BIGINT UNSIGNED UNIQUE NOT NULL, |  | ||||||
|  |  | ||||||
|     name VARCHAR(37) NOT NULL, |  | ||||||
|  |  | ||||||
|     dm_channel INT UNSIGNED UNIQUE NOT NULL, |  | ||||||
|  |  | ||||||
|     language VARCHAR(2) DEFAULT 'EN' NOT NULL, |  | ||||||
|     timezone VARCHAR(32) DEFAULT 'UTC' NOT NULL, |  | ||||||
|     meridian_time BOOLEAN DEFAULT 0 NOT NULL, |  | ||||||
|  |  | ||||||
|     allowed_dm BOOLEAN DEFAULT 1 NOT NULL, |  | ||||||
|  |  | ||||||
|     patreon BOOLEAN NOT NULL DEFAULT 0, |  | ||||||
|  |  | ||||||
|     PRIMARY KEY (id), |  | ||||||
|     FOREIGN KEY (dm_channel) REFERENCES reminders.channels(id) ON DELETE RESTRICT |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| CREATE TABLE reminders.roles ( |  | ||||||
|     id INT UNSIGNED UNIQUE NOT NULL AUTO_INCREMENT, |  | ||||||
|     role BIGINT UNSIGNED UNIQUE NOT NULL, |  | ||||||
|  |  | ||||||
|     name VARCHAR(100), |  | ||||||
|  |  | ||||||
|     guild_id INT UNSIGNED NOT NULL, |  | ||||||
|  |  | ||||||
|     PRIMARY KEY (id), |  | ||||||
|     FOREIGN KEY (guild_id) REFERENCES reminders.guilds(id) ON DELETE CASCADE |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| CREATE TABLE reminders.embeds ( |  | ||||||
|     id INT UNSIGNED AUTO_INCREMENT UNIQUE NOT NULL, |  | ||||||
|  |  | ||||||
|     title VARCHAR(256) NOT NULL DEFAULT '', |  | ||||||
|     description VARCHAR(2048) NOT NULL DEFAULT '', |  | ||||||
|  |  | ||||||
|     image_url VARCHAR(512), |  | ||||||
|     thumbnail_url VARCHAR(512), |  | ||||||
|  |  | ||||||
|     footer VARCHAR(2048) NOT NULL DEFAULT '', |  | ||||||
|     footer_icon VARCHAR(512), |  | ||||||
|  |  | ||||||
|     color MEDIUMINT UNSIGNED NOT NULL DEFAULT 0x0, |  | ||||||
|  |  | ||||||
|     PRIMARY KEY (id) |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| CREATE TABLE reminders.embed_fields ( |  | ||||||
|     id INT UNSIGNED AUTO_INCREMENT UNIQUE NOT NULL, |  | ||||||
|  |  | ||||||
|     title VARCHAR(256) NOT NULL DEFAULT '', |  | ||||||
|     value VARCHAR(1024) NOT NULL DEFAULT '', |  | ||||||
|     inline BOOL NOT NULL DEFAULT 0, |  | ||||||
|     embed_id INT UNSIGNED NOT NULL, |  | ||||||
|  |  | ||||||
|     PRIMARY KEY (id), |  | ||||||
|     FOREIGN KEY (embed_id) REFERENCES reminders.embeds(id) ON DELETE CASCADE |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| CREATE TABLE reminders.messages ( |  | ||||||
|     id INT UNSIGNED AUTO_INCREMENT UNIQUE NOT NULL, |  | ||||||
|  |  | ||||||
|     content VARCHAR(2048) NOT NULL DEFAULT '', |  | ||||||
|     tts BOOL NOT NULL DEFAULT 0, |  | ||||||
|     embed_id INT UNSIGNED, |  | ||||||
|  |  | ||||||
|     attachment MEDIUMBLOB, |  | ||||||
|     attachment_name VARCHAR(260), |  | ||||||
|  |  | ||||||
|     PRIMARY KEY (id), |  | ||||||
|     FOREIGN KEY (embed_id) REFERENCES reminders.embeds(id) ON DELETE SET NULL |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| CREATE TABLE reminders.reminders ( |  | ||||||
|     id INT UNSIGNED AUTO_INCREMENT UNIQUE NOT NULL, |  | ||||||
|     uid VARCHAR(64) UNIQUE NOT NULL, |  | ||||||
|  |  | ||||||
|     name VARCHAR(24) NOT NULL DEFAULT 'Reminder', |  | ||||||
|  |  | ||||||
|     message_id INT UNSIGNED NOT NULL, |  | ||||||
|     channel_id INT UNSIGNED NOT NULL, |  | ||||||
|  |  | ||||||
|     `time` INT UNSIGNED DEFAULT 0 NOT NULL, |  | ||||||
|     `interval` INT UNSIGNED DEFAULT NULL, |  | ||||||
|     expires TIMESTAMP DEFAULT NULL, |  | ||||||
|  |  | ||||||
|     enabled BOOLEAN DEFAULT 1 NOT NULL, |  | ||||||
|  |  | ||||||
|     avatar VARCHAR(512), |  | ||||||
|     username VARCHAR(32), |  | ||||||
|  |  | ||||||
|     method ENUM('remind', 'natural', 'dashboard', 'todo', 'countdown'), |  | ||||||
|     set_at TIMESTAMP DEFAULT NOW(), |  | ||||||
|     set_by INT UNSIGNED, |  | ||||||
|  |  | ||||||
|     PRIMARY KEY (id), |  | ||||||
|     FOREIGN KEY (message_id) REFERENCES reminders.messages(id) ON DELETE RESTRICT, |  | ||||||
|     FOREIGN KEY (channel_id) REFERENCES reminders.channels(id) ON DELETE CASCADE, |  | ||||||
|     FOREIGN KEY (set_by) REFERENCES reminders.users(id) ON DELETE SET NULL |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| CREATE TRIGGER message_cleanup AFTER DELETE ON reminders.reminders |  | ||||||
| FOR EACH ROW |  | ||||||
|     DELETE FROM reminders.messages WHERE id = OLD.message_id; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER embed_cleanup AFTER DELETE ON reminders.messages |  | ||||||
| FOR EACH ROW |  | ||||||
|     DELETE FROM reminders.embeds WHERE id = OLD.embed_id; |  | ||||||
|  |  | ||||||
| CREATE TABLE reminders.todos ( |  | ||||||
|     id INT UNSIGNED AUTO_INCREMENT UNIQUE NOT NULL, |  | ||||||
|     user_id INT UNSIGNED, |  | ||||||
|     guild_id INT UNSIGNED, |  | ||||||
|     channel_id INT UNSIGNED, |  | ||||||
|     value VARCHAR(2000) NOT NULL, |  | ||||||
|  |  | ||||||
|     PRIMARY KEY (id), |  | ||||||
|     FOREIGN KEY (user_id) REFERENCES reminders.users(id) ON DELETE SET NULL, |  | ||||||
|     FOREIGN KEY (guild_id) REFERENCES reminders.guilds(id) ON DELETE CASCADE, |  | ||||||
|     FOREIGN KEY (channel_id) REFERENCES reminders.channels(id) ON DELETE SET NULL |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| CREATE TABLE reminders.command_restrictions ( |  | ||||||
|     id INT UNSIGNED AUTO_INCREMENT UNIQUE NOT NULL, |  | ||||||
|  |  | ||||||
|     role_id INT UNSIGNED NOT NULL, |  | ||||||
|     command ENUM('todos', 'natural', 'remind', 'interval', 'timer', 'del', 'look', 'alias', 'countdown') NOT NULL, |  | ||||||
|  |  | ||||||
|     PRIMARY KEY (id), |  | ||||||
|     FOREIGN KEY (role_id) REFERENCES reminders.roles(id) ON DELETE CASCADE, |  | ||||||
|     UNIQUE KEY (`role_id`, `command`) |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| CREATE TABLE reminders.timers ( |  | ||||||
|     id INT UNSIGNED AUTO_INCREMENT UNIQUE NOT NULL, |  | ||||||
|     start_time TIMESTAMP NOT NULL DEFAULT NOW(), |  | ||||||
|     name VARCHAR(32) NOT NULL, |  | ||||||
|     owner BIGINT UNSIGNED NOT NULL, |  | ||||||
|  |  | ||||||
|     PRIMARY KEY (id) |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| CREATE TABLE reminders.events ( |  | ||||||
|     id INT UNSIGNED AUTO_INCREMENT UNIQUE NOT NULL, |  | ||||||
|     `time` TIMESTAMP NOT NULL DEFAULT NOW(), |  | ||||||
|  |  | ||||||
|     event_name ENUM('edit', 'enable', 'disable', 'delete') NOT NULL, |  | ||||||
|     bulk_count INT UNSIGNED, |  | ||||||
|  |  | ||||||
|     guild_id INT UNSIGNED NOT NULL, |  | ||||||
|     user_id INT UNSIGNED, |  | ||||||
|     reminder_id INT UNSIGNED, |  | ||||||
|  |  | ||||||
|     PRIMARY KEY (id), |  | ||||||
|     FOREIGN KEY (guild_id) REFERENCES reminders.guilds(id) ON DELETE CASCADE, |  | ||||||
|     FOREIGN KEY (user_id) REFERENCES reminders.users(id) ON DELETE SET NULL, |  | ||||||
|     FOREIGN KEY (reminder_id) REFERENCES reminders.reminders(id) ON DELETE SET NULL |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| CREATE TABLE reminders.command_aliases ( |  | ||||||
|     id INT UNSIGNED AUTO_INCREMENT UNIQUE NOT NULL, |  | ||||||
|  |  | ||||||
|     guild_id INT UNSIGNED NOT NULL, |  | ||||||
|     name VARCHAR(12) NOT NULL, |  | ||||||
|  |  | ||||||
|     command VARCHAR(2048) NOT NULL, |  | ||||||
|  |  | ||||||
|     PRIMARY KEY (id), |  | ||||||
|     FOREIGN KEY (guild_id) REFERENCES reminders.guilds(id) ON DELETE CASCADE, |  | ||||||
|     UNIQUE KEY (`guild_id`, `name`) |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| CREATE TABLE reminders.guild_users ( |  | ||||||
|     guild INT UNSIGNED NOT NULL, |  | ||||||
|     user INT UNSIGNED NOT NULL, |  | ||||||
|  |  | ||||||
|     can_access BOOL NOT NULL DEFAULT 0, |  | ||||||
|  |  | ||||||
|     FOREIGN KEY (guild) REFERENCES reminders.guilds(id) ON DELETE CASCADE, |  | ||||||
|     FOREIGN KEY (user) REFERENCES reminders.users(id) ON DELETE CASCADE, |  | ||||||
|     UNIQUE KEY (guild, user) |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| CREATE EVENT reminders.event_cleanup |  | ||||||
| ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 DAY |  | ||||||
| ON COMPLETION PRESERVE |  | ||||||
| DO DELETE FROM reminders.events WHERE `time` < DATE_SUB(NOW(), INTERVAL 5 DAY); |  | ||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @@ -1,13 +0,0 @@ | |||||||
| USE reminders; |  | ||||||
|  |  | ||||||
| CREATE TABLE macro ( |  | ||||||
|     id INT UNSIGNED AUTO_INCREMENT, |  | ||||||
|     guild_id INT UNSIGNED NOT NULL, |  | ||||||
|  |  | ||||||
|     name VARCHAR(100) NOT NULL, |  | ||||||
|     description VARCHAR(100), |  | ||||||
|     commands TEXT NOT NULL, |  | ||||||
|  |  | ||||||
|     FOREIGN KEY (guild_id) REFERENCES guilds(id) ON DELETE CASCADE, |  | ||||||
|     PRIMARY KEY (id) |  | ||||||
| ); |  | ||||||
| @@ -1,4 +0,0 @@ | |||||||
| USE reminders; |  | ||||||
|  |  | ||||||
| ALTER TABLE reminders.reminders RENAME COLUMN `interval` TO `interval_seconds`; |  | ||||||
| ALTER TABLE reminders.reminders ADD COLUMN `interval_months` INT UNSIGNED DEFAULT NULL; |  | ||||||
| @@ -1,51 +0,0 @@ | |||||||
| USE reminders; |  | ||||||
|  |  | ||||||
| CREATE TABLE reminder_template ( |  | ||||||
|     `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, |  | ||||||
|  |  | ||||||
|     `name` VARCHAR(24) NOT NULL DEFAULT 'Reminder', |  | ||||||
|  |  | ||||||
|     `guild_id` INT UNSIGNED NOT NULL, |  | ||||||
|  |  | ||||||
|     `username` VARCHAR(32) DEFAULT NULL, |  | ||||||
|     `avatar` VARCHAR(512) DEFAULT NULL, |  | ||||||
|  |  | ||||||
|     `content` VARCHAR(2048) NOT NULL DEFAULT '', |  | ||||||
|     `tts` BOOL NOT NULL DEFAULT 0, |  | ||||||
|     `attachment` MEDIUMBLOB, |  | ||||||
|     `attachment_name` VARCHAR(260), |  | ||||||
|  |  | ||||||
|     `embed_title` VARCHAR(256) NOT NULL DEFAULT '', |  | ||||||
|     `embed_description` VARCHAR(2048) NOT NULL DEFAULT '', |  | ||||||
|     `embed_image_url` VARCHAR(512), |  | ||||||
|     `embed_thumbnail_url` VARCHAR(512), |  | ||||||
|     `embed_footer` VARCHAR(2048) NOT NULL DEFAULT '', |  | ||||||
|     `embed_footer_url` VARCHAR(512), |  | ||||||
|     `embed_author` VARCHAR(256) NOT NULL DEFAULT '', |  | ||||||
|     `embed_author_url` VARCHAR(512), |  | ||||||
|     `embed_color` INT UNSIGNED NOT NULL DEFAULT 0x0, |  | ||||||
|     `embed_fields` JSON, |  | ||||||
|  |  | ||||||
|     PRIMARY KEY (id), |  | ||||||
|  |  | ||||||
|     FOREIGN KEY (`guild_id`) REFERENCES guilds (`id`) ON DELETE CASCADE |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| ALTER TABLE reminders ADD COLUMN embed_fields JSON; |  | ||||||
|  |  | ||||||
| update reminders |  | ||||||
|     inner join embed_fields as E |  | ||||||
|     on E.reminder_id = reminders.id |  | ||||||
| set embed_fields = ( |  | ||||||
|     select JSON_ARRAYAGG( |  | ||||||
|         JSON_OBJECT( |  | ||||||
|             'title', E.title, |  | ||||||
|             'value', E.value, |  | ||||||
|             'inline', |  | ||||||
|             if(inline = 1, cast(TRUE as json), cast(FALSE as json)) |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|     from embed_fields |  | ||||||
|     group by reminder_id |  | ||||||
|     having reminder_id = reminders.id |  | ||||||
|     ); |  | ||||||
							
								
								
									
										7
									
								
								models/Cargo.lock
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								models/Cargo.lock
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | |||||||
|  | # This file is automatically @generated by Cargo. | ||||||
|  | # It is not intended for manual editing. | ||||||
|  | version = 3 | ||||||
|  |  | ||||||
|  | [[package]] | ||||||
|  | name = "models" | ||||||
|  | version = "0.1.0" | ||||||
							
								
								
									
										8
									
								
								models/Cargo.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								models/Cargo.toml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | |||||||
|  | [package] | ||||||
|  | name = "models" | ||||||
|  | version = "0.1.0" | ||||||
|  | edition = "2021" | ||||||
|  |  | ||||||
|  | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html | ||||||
|  |  | ||||||
|  | [dependencies] | ||||||
							
								
								
									
										8
									
								
								models/entity/Cargo.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								models/entity/Cargo.toml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | |||||||
|  | [package] | ||||||
|  | name = "entity" | ||||||
|  | version = "0.1.0" | ||||||
|  | edition = "2021" | ||||||
|  |  | ||||||
|  | [dependencies] | ||||||
|  | chrono-tz = "^0.6" | ||||||
|  | sea-orm = { version = "^0.8", features = ["sqlx-postgres", "runtime-tokio-native-tls", "macros"] } | ||||||
							
								
								
									
										60
									
								
								models/entity/src/channel.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								models/entity/src/channel.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,60 @@ | |||||||
|  | //! SeaORM Entity. Generated by sea-orm-codegen 0.8.0 | ||||||
|  |  | ||||||
|  | use sea_orm::entity::prelude::*; | ||||||
|  |  | ||||||
|  | #[derive(Clone, Debug, PartialEq, DeriveEntityModel)] | ||||||
|  | #[sea_orm(table_name = "channel")] | ||||||
|  | pub struct Model { | ||||||
|  |     #[sea_orm(primary_key, auto_increment = false)] | ||||||
|  |     pub id: i64, | ||||||
|  |     pub guild_id: Option<i64>, | ||||||
|  |     pub nudge: i32, | ||||||
|  |     pub webhook_id: Option<i64>, | ||||||
|  |     pub webhook_token: Option<String>, | ||||||
|  |     pub paused: bool, | ||||||
|  |     pub paused_until: Option<DateTimeUtc>, | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] | ||||||
|  | pub enum Relation { | ||||||
|  |     #[sea_orm( | ||||||
|  |         belongs_to = "super::guild::Entity", | ||||||
|  |         from = "Column::GuildId", | ||||||
|  |         to = "super::guild::Column::Id", | ||||||
|  |         on_update = "NoAction", | ||||||
|  |         on_delete = "Cascade" | ||||||
|  |     )] | ||||||
|  |     Guild, | ||||||
|  |     #[sea_orm(has_many = "super::user::Entity")] | ||||||
|  |     User, | ||||||
|  |     #[sea_orm(has_many = "super::reminder::Entity")] | ||||||
|  |     Reminder, | ||||||
|  |     #[sea_orm(has_many = "super::todo::Entity")] | ||||||
|  |     Todo, | ||||||
|  | } | ||||||
|  |  | ||||||
|  | impl Related<super::guild::Entity> for Entity { | ||||||
|  |     fn to() -> RelationDef { | ||||||
|  |         Relation::Guild.def() | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | impl Related<super::user::Entity> for Entity { | ||||||
|  |     fn to() -> RelationDef { | ||||||
|  |         Relation::User.def() | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | impl Related<super::reminder::Entity> for Entity { | ||||||
|  |     fn to() -> RelationDef { | ||||||
|  |         Relation::Reminder.def() | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | impl Related<super::todo::Entity> for Entity { | ||||||
|  |     fn to() -> RelationDef { | ||||||
|  |         Relation::Todo.def() | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | impl ActiveModelBehavior for ActiveModel {} | ||||||
							
								
								
									
										34
									
								
								models/entity/src/command_macro.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								models/entity/src/command_macro.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | |||||||
|  | //! SeaORM Entity. Generated by sea-orm-codegen 0.8.0 | ||||||
|  |  | ||||||
|  | use sea_orm::entity::prelude::*; | ||||||
|  |  | ||||||
|  | #[derive(Clone, Debug, PartialEq, DeriveEntityModel)] | ||||||
|  | #[sea_orm(table_name = "command_macro")] | ||||||
|  | pub struct Model { | ||||||
|  |     #[sea_orm(primary_key)] | ||||||
|  |     pub id: i32, | ||||||
|  |     pub guild_id: i64, | ||||||
|  |     pub name: String, | ||||||
|  |     pub description: Option<String>, | ||||||
|  |     pub commands: Option<Json>, | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] | ||||||
|  | pub enum Relation { | ||||||
|  |     #[sea_orm( | ||||||
|  |         belongs_to = "super::guild::Entity", | ||||||
|  |         from = "Column::GuildId", | ||||||
|  |         to = "super::guild::Column::Id", | ||||||
|  |         on_update = "NoAction", | ||||||
|  |         on_delete = "Cascade" | ||||||
|  |     )] | ||||||
|  |     Guild, | ||||||
|  | } | ||||||
|  |  | ||||||
|  | impl Related<super::guild::Entity> for Entity { | ||||||
|  |     fn to() -> RelationDef { | ||||||
|  |         Relation::Guild.def() | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | impl ActiveModelBehavior for ActiveModel {} | ||||||
							
								
								
									
										48
									
								
								models/entity/src/guild.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								models/entity/src/guild.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,48 @@ | |||||||
|  | //! SeaORM Entity. Generated by sea-orm-codegen 0.8.0 | ||||||
|  |  | ||||||
|  | use sea_orm::entity::prelude::*; | ||||||
|  |  | ||||||
|  | #[derive(Clone, Debug, PartialEq, DeriveEntityModel)] | ||||||
|  | #[sea_orm(table_name = "guild")] | ||||||
|  | pub struct Model { | ||||||
|  |     #[sea_orm(primary_key, auto_increment = false)] | ||||||
|  |     pub id: i64, | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] | ||||||
|  | pub enum Relation { | ||||||
|  |     #[sea_orm(has_many = "super::reminder_template::Entity")] | ||||||
|  |     ReminderTemplate, | ||||||
|  |     #[sea_orm(has_many = "super::channel::Entity")] | ||||||
|  |     Channel, | ||||||
|  |     #[sea_orm(has_many = "super::todo::Entity")] | ||||||
|  |     Todo, | ||||||
|  |     #[sea_orm(has_many = "super::command_macro::Entity")] | ||||||
|  |     CommandMacro, | ||||||
|  | } | ||||||
|  |  | ||||||
|  | impl Related<super::reminder_template::Entity> for Entity { | ||||||
|  |     fn to() -> RelationDef { | ||||||
|  |         Relation::ReminderTemplate.def() | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | impl Related<super::channel::Entity> for Entity { | ||||||
|  |     fn to() -> RelationDef { | ||||||
|  |         Relation::Channel.def() | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | impl Related<super::todo::Entity> for Entity { | ||||||
|  |     fn to() -> RelationDef { | ||||||
|  |         Relation::Todo.def() | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | impl Related<super::command_macro::Entity> for Entity { | ||||||
|  |     fn to() -> RelationDef { | ||||||
|  |         Relation::CommandMacro.def() | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | impl ActiveModelBehavior for ActiveModel {} | ||||||
							
								
								
									
										1
									
								
								models/entity/src/lib.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								models/entity/src/lib.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  |  | ||||||
							
								
								
									
										14
									
								
								models/entity/src/mod.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								models/entity/src/mod.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | |||||||
|  | //! SeaORM Entity. Generated by sea-orm-codegen 0.8.0 | ||||||
|  |  | ||||||
|  | pub mod prelude; | ||||||
|  |  | ||||||
|  | pub mod channel; | ||||||
|  | pub mod command_macro; | ||||||
|  | pub mod guild; | ||||||
|  | pub mod reminder; | ||||||
|  | pub mod reminder_template; | ||||||
|  | pub mod sea_orm_active_enums; | ||||||
|  | pub mod seaql_migrations; | ||||||
|  | pub mod timer; | ||||||
|  | pub mod todo; | ||||||
|  | pub mod user; | ||||||
							
								
								
									
										8
									
								
								models/entity/src/prelude.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								models/entity/src/prelude.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | |||||||
|  | //! SeaORM Entity. Generated by sea-orm-codegen 0.8.0 | ||||||
|  |  | ||||||
|  | pub use super::{ | ||||||
|  |     channel::Entity as Channel, command_macro::Entity as CommandMacro, guild::Entity as Guild, | ||||||
|  |     reminder::Entity as Reminder, reminder_template::Entity as ReminderTemplate, | ||||||
|  |     seaql_migrations::Entity as SeaqlMigrations, timer::Entity as Timer, todo::Entity as Todo, | ||||||
|  |     user::Entity as User, | ||||||
|  | }; | ||||||
							
								
								
									
										73
									
								
								models/entity/src/reminder.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								models/entity/src/reminder.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,73 @@ | |||||||
|  | //! SeaORM Entity. Generated by sea-orm-codegen 0.8.0 | ||||||
|  |  | ||||||
|  | use sea_orm::entity::prelude::*; | ||||||
|  |  | ||||||
|  | use super::sea_orm_active_enums::Timezone; | ||||||
|  |  | ||||||
|  | #[derive(Clone, Debug, PartialEq, DeriveEntityModel)] | ||||||
|  | #[sea_orm(table_name = "reminder")] | ||||||
|  | pub struct Model { | ||||||
|  |     #[sea_orm(primary_key)] | ||||||
|  |     pub id: i32, | ||||||
|  |     pub uid: String, | ||||||
|  |     pub name: String, | ||||||
|  |     pub channel_id: i64, | ||||||
|  |     pub utc_time: DateTimeUtc, | ||||||
|  |     pub timezone: Timezone, | ||||||
|  |     pub interval_seconds: Option<i32>, | ||||||
|  |     pub interval_months: Option<i32>, | ||||||
|  |     pub enabled: bool, | ||||||
|  |     pub expires: Option<DateTimeUtc>, | ||||||
|  |     pub username: Option<String>, | ||||||
|  |     pub avatar: Option<String>, | ||||||
|  |     pub content: Option<String>, | ||||||
|  |     pub tts: bool, | ||||||
|  |     pub attachment: Option<Vec<u8>>, | ||||||
|  |     pub attachment_name: Option<String>, | ||||||
|  |     pub embed_title: Option<String>, | ||||||
|  |     pub embed_description: Option<String>, | ||||||
|  |     pub embed_image_url: Option<String>, | ||||||
|  |     pub embed_thumbnail_url: Option<String>, | ||||||
|  |     pub embed_footer: Option<String>, | ||||||
|  |     pub embed_footer_url: Option<String>, | ||||||
|  |     pub embed_author: Option<String>, | ||||||
|  |     pub embed_author_url: Option<String>, | ||||||
|  |     pub embed_color: Option<i32>, | ||||||
|  |     pub embed_fields: Option<Json>, | ||||||
|  |     pub set_at: DateTimeUtc, | ||||||
|  |     pub set_by: i64, | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] | ||||||
|  | pub enum Relation { | ||||||
|  |     #[sea_orm( | ||||||
|  |         belongs_to = "super::channel::Entity", | ||||||
|  |         from = "Column::ChannelId", | ||||||
|  |         to = "super::channel::Column::Id", | ||||||
|  |         on_update = "NoAction", | ||||||
|  |         on_delete = "Cascade" | ||||||
|  |     )] | ||||||
|  |     Channel, | ||||||
|  |     #[sea_orm( | ||||||
|  |         belongs_to = "super::user::Entity", | ||||||
|  |         from = "Column::SetBy", | ||||||
|  |         to = "super::user::Column::Id", | ||||||
|  |         on_update = "NoAction", | ||||||
|  |         on_delete = "Cascade" | ||||||
|  |     )] | ||||||
|  |     User, | ||||||
|  | } | ||||||
|  |  | ||||||
|  | impl Related<super::channel::Entity> for Entity { | ||||||
|  |     fn to() -> RelationDef { | ||||||
|  |         Relation::Channel.def() | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | impl Related<super::user::Entity> for Entity { | ||||||
|  |     fn to() -> RelationDef { | ||||||
|  |         Relation::User.def() | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | impl ActiveModelBehavior for ActiveModel {} | ||||||
							
								
								
									
										48
									
								
								models/entity/src/reminder_template.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								models/entity/src/reminder_template.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,48 @@ | |||||||
|  | //! SeaORM Entity. Generated by sea-orm-codegen 0.8.0 | ||||||
|  |  | ||||||
|  | use sea_orm::entity::prelude::*; | ||||||
|  |  | ||||||
|  | #[derive(Clone, Debug, PartialEq, DeriveEntityModel)] | ||||||
|  | #[sea_orm(table_name = "reminder_template")] | ||||||
|  | pub struct Model { | ||||||
|  |     #[sea_orm(primary_key)] | ||||||
|  |     pub id: i32, | ||||||
|  |     pub guild_id: i64, | ||||||
|  |     pub name: String, | ||||||
|  |     pub username: Option<String>, | ||||||
|  |     pub avatar: Option<String>, | ||||||
|  |     pub content: Option<String>, | ||||||
|  |     pub tts: bool, | ||||||
|  |     pub attachment: Option<Vec<u8>>, | ||||||
|  |     pub attachment_name: Option<String>, | ||||||
|  |     pub embed_title: Option<String>, | ||||||
|  |     pub embed_description: Option<String>, | ||||||
|  |     pub embed_image_url: Option<String>, | ||||||
|  |     pub embed_thumbnail_url: Option<String>, | ||||||
|  |     pub embed_footer: Option<String>, | ||||||
|  |     pub embed_footer_url: Option<String>, | ||||||
|  |     pub embed_author: Option<String>, | ||||||
|  |     pub embed_author_url: Option<String>, | ||||||
|  |     pub embed_color: Option<i32>, | ||||||
|  |     pub embed_fields: Option<Json>, | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] | ||||||
|  | pub enum Relation { | ||||||
|  |     #[sea_orm( | ||||||
|  |         belongs_to = "super::guild::Entity", | ||||||
|  |         from = "Column::GuildId", | ||||||
|  |         to = "super::guild::Column::Id", | ||||||
|  |         on_update = "NoAction", | ||||||
|  |         on_delete = "Cascade" | ||||||
|  |     )] | ||||||
|  |     Guild, | ||||||
|  | } | ||||||
|  |  | ||||||
|  | impl Related<super::guild::Entity> for Entity { | ||||||
|  |     fn to() -> RelationDef { | ||||||
|  |         Relation::Guild.def() | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | impl ActiveModelBehavior for ActiveModel {} | ||||||
							
								
								
									
										1196
									
								
								models/entity/src/sea_orm_active_enums.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1196
									
								
								models/entity/src/sea_orm_active_enums.rs
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										22
									
								
								models/entity/src/seaql_migrations.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								models/entity/src/seaql_migrations.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | |||||||
|  | //! SeaORM Entity. Generated by sea-orm-codegen 0.8.0 | ||||||
|  |  | ||||||
|  | use sea_orm::entity::prelude::*; | ||||||
|  |  | ||||||
|  | #[derive(Clone, Debug, PartialEq, DeriveEntityModel)] | ||||||
|  | #[sea_orm(table_name = "seaql_migrations")] | ||||||
|  | pub struct Model { | ||||||
|  |     #[sea_orm(primary_key, auto_increment = false)] | ||||||
|  |     pub version: String, | ||||||
|  |     pub applied_at: i64, | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #[derive(Copy, Clone, Debug, EnumIter)] | ||||||
|  | pub enum Relation {} | ||||||
|  |  | ||||||
|  | impl RelationTrait for Relation { | ||||||
|  |     fn def(&self) -> RelationDef { | ||||||
|  |         panic!("No RelationDef") | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | impl ActiveModelBehavior for ActiveModel {} | ||||||
							
								
								
									
										36
									
								
								models/entity/src/timer.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								models/entity/src/timer.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,36 @@ | |||||||
|  | //! SeaORM Entity. Generated by sea-orm-codegen 0.8.0 | ||||||
|  |  | ||||||
|  | use sea_orm::entity::prelude::*; | ||||||
|  |  | ||||||
|  | #[derive(Clone, Debug, PartialEq, DeriveEntityModel)] | ||||||
|  | #[sea_orm(table_name = "timer")] | ||||||
|  | pub struct Model { | ||||||
|  |     #[sea_orm(primary_key)] | ||||||
|  |     pub id: i32, | ||||||
|  |     pub start_time: DateTimeUtc, | ||||||
|  |     pub name: String, | ||||||
|  |     pub user_id: Option<i64>, | ||||||
|  |     pub guild_id: Option<i64>, | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] | ||||||
|  | pub enum Relation { | ||||||
|  |     #[sea_orm( | ||||||
|  |         belongs_to = "super::guild::Entity", | ||||||
|  |         from = "Column::GuildId", | ||||||
|  |         to = "super::guild::Column::Id", | ||||||
|  |         on_update = "NoAction", | ||||||
|  |         on_delete = "Cascade" | ||||||
|  |     )] | ||||||
|  |     Guild2, | ||||||
|  |     #[sea_orm( | ||||||
|  |         belongs_to = "super::guild::Entity", | ||||||
|  |         from = "Column::UserId", | ||||||
|  |         to = "super::guild::Column::Id", | ||||||
|  |         on_update = "NoAction", | ||||||
|  |         on_delete = "Cascade" | ||||||
|  |     )] | ||||||
|  |     Guild1, | ||||||
|  | } | ||||||
|  |  | ||||||
|  | impl ActiveModelBehavior for ActiveModel {} | ||||||
							
								
								
									
										62
									
								
								models/entity/src/todo.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								models/entity/src/todo.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,62 @@ | |||||||
|  | //! SeaORM Entity. Generated by sea-orm-codegen 0.8.0 | ||||||
|  |  | ||||||
|  | use sea_orm::entity::prelude::*; | ||||||
|  |  | ||||||
|  | #[derive(Clone, Debug, PartialEq, DeriveEntityModel)] | ||||||
|  | #[sea_orm(table_name = "todo")] | ||||||
|  | pub struct Model { | ||||||
|  |     #[sea_orm(primary_key)] | ||||||
|  |     pub id: i32, | ||||||
|  |     pub user_id: Option<i64>, | ||||||
|  |     pub guild_id: Option<i64>, | ||||||
|  |     pub channel_id: Option<i64>, | ||||||
|  |     pub value: String, | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] | ||||||
|  | pub enum Relation { | ||||||
|  |     #[sea_orm( | ||||||
|  |         belongs_to = "super::channel::Entity", | ||||||
|  |         from = "Column::ChannelId", | ||||||
|  |         to = "super::channel::Column::Id", | ||||||
|  |         on_update = "NoAction", | ||||||
|  |         on_delete = "Cascade" | ||||||
|  |     )] | ||||||
|  |     Channel, | ||||||
|  |     #[sea_orm( | ||||||
|  |         belongs_to = "super::guild::Entity", | ||||||
|  |         from = "Column::GuildId", | ||||||
|  |         to = "super::guild::Column::Id", | ||||||
|  |         on_update = "NoAction", | ||||||
|  |         on_delete = "Cascade" | ||||||
|  |     )] | ||||||
|  |     Guild, | ||||||
|  |     #[sea_orm( | ||||||
|  |         belongs_to = "super::user::Entity", | ||||||
|  |         from = "Column::UserId", | ||||||
|  |         to = "super::user::Column::Id", | ||||||
|  |         on_update = "NoAction", | ||||||
|  |         on_delete = "Cascade" | ||||||
|  |     )] | ||||||
|  |     User, | ||||||
|  | } | ||||||
|  |  | ||||||
|  | impl Related<super::channel::Entity> for Entity { | ||||||
|  |     fn to() -> RelationDef { | ||||||
|  |         Relation::Channel.def() | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | impl Related<super::guild::Entity> for Entity { | ||||||
|  |     fn to() -> RelationDef { | ||||||
|  |         Relation::Guild.def() | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | impl Related<super::user::Entity> for Entity { | ||||||
|  |     fn to() -> RelationDef { | ||||||
|  |         Relation::User.def() | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | impl ActiveModelBehavior for ActiveModel {} | ||||||
							
								
								
									
										50
									
								
								models/entity/src/user.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								models/entity/src/user.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,50 @@ | |||||||
|  | //! SeaORM Entity. Generated by sea-orm-codegen 0.8.0 | ||||||
|  |  | ||||||
|  | use sea_orm::entity::prelude::*; | ||||||
|  |  | ||||||
|  | use super::sea_orm_active_enums::Timezone; | ||||||
|  |  | ||||||
|  | #[derive(Clone, Debug, PartialEq, DeriveEntityModel)] | ||||||
|  | #[sea_orm(table_name = "user")] | ||||||
|  | pub struct Model { | ||||||
|  |     #[sea_orm(primary_key, auto_increment = false)] | ||||||
|  |     pub id: i64, | ||||||
|  |     pub dm_channel: i64, | ||||||
|  |     pub timezone: Timezone, | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] | ||||||
|  | pub enum Relation { | ||||||
|  |     #[sea_orm( | ||||||
|  |         belongs_to = "super::channel::Entity", | ||||||
|  |         from = "Column::DmChannel", | ||||||
|  |         to = "super::channel::Column::Id", | ||||||
|  |         on_update = "NoAction", | ||||||
|  |         on_delete = "Cascade" | ||||||
|  |     )] | ||||||
|  |     Channel, | ||||||
|  |     #[sea_orm(has_many = "super::reminder::Entity")] | ||||||
|  |     Reminder, | ||||||
|  |     #[sea_orm(has_many = "super::todo::Entity")] | ||||||
|  |     Todo, | ||||||
|  | } | ||||||
|  |  | ||||||
|  | impl Related<super::channel::Entity> for Entity { | ||||||
|  |     fn to() -> RelationDef { | ||||||
|  |         Relation::Channel.def() | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | impl Related<super::reminder::Entity> for Entity { | ||||||
|  |     fn to() -> RelationDef { | ||||||
|  |         Relation::Reminder.def() | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | impl Related<super::todo::Entity> for Entity { | ||||||
|  |     fn to() -> RelationDef { | ||||||
|  |         Relation::Todo.def() | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | impl ActiveModelBehavior for ActiveModel {} | ||||||
							
								
								
									
										2400
									
								
								models/migration/Cargo.lock
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										2400
									
								
								models/migration/Cargo.lock
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										16
									
								
								models/migration/Cargo.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								models/migration/Cargo.toml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | |||||||
|  | [package] | ||||||
|  | name = "migration" | ||||||
|  | version = "0.1.0" | ||||||
|  | edition = "2021" | ||||||
|  | publish = false | ||||||
|  |  | ||||||
|  | [lib] | ||||||
|  | name = "migration" | ||||||
|  | path = "src/lib.rs" | ||||||
|  |  | ||||||
|  | [dependencies] | ||||||
|  | entity = { path = "../entity" } | ||||||
|  | chrono-tz = "^0.6" | ||||||
|  |  | ||||||
|  | [dependencies.sea-orm-migration] | ||||||
|  | version = "^0.8.0" | ||||||
							
								
								
									
										37
									
								
								models/migration/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								models/migration/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,37 @@ | |||||||
|  | # Running Migrator CLI | ||||||
|  |  | ||||||
|  | - Apply all pending migrations | ||||||
|  |     ```sh | ||||||
|  |     cargo run | ||||||
|  |     ``` | ||||||
|  |     ```sh | ||||||
|  |     cargo run -- up | ||||||
|  |     ``` | ||||||
|  | - Apply first 10 pending migrations | ||||||
|  |     ```sh | ||||||
|  |     cargo run -- up -n 10 | ||||||
|  |     ``` | ||||||
|  | - Rollback last applied migrations | ||||||
|  |     ```sh | ||||||
|  |     cargo run -- down | ||||||
|  |     ``` | ||||||
|  | - Rollback last 10 applied migrations | ||||||
|  |     ```sh | ||||||
|  |     cargo run -- down -n 10 | ||||||
|  |     ``` | ||||||
|  | - Drop all tables from the database, then reapply all migrations | ||||||
|  |     ```sh | ||||||
|  |     cargo run -- fresh | ||||||
|  |     ``` | ||||||
|  | - Rollback all applied migrations, then reapply all migrations | ||||||
|  |     ```sh | ||||||
|  |     cargo run -- refresh | ||||||
|  |     ``` | ||||||
|  | - Rollback all applied migrations | ||||||
|  |     ```sh | ||||||
|  |     cargo run -- reset | ||||||
|  |     ``` | ||||||
|  | - Check the status of all migrations | ||||||
|  |     ```sh | ||||||
|  |     cargo run -- status | ||||||
|  |     ``` | ||||||
							
								
								
									
										12
									
								
								models/migration/src/lib.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								models/migration/src/lib.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | |||||||
|  | pub use sea_orm_migration::prelude::*; | ||||||
|  |  | ||||||
|  | mod m20220101_000001_create_table; | ||||||
|  |  | ||||||
|  | pub struct Migrator; | ||||||
|  |  | ||||||
|  | #[async_trait::async_trait] | ||||||
|  | impl MigratorTrait for Migrator { | ||||||
|  |     fn migrations() -> Vec<Box<dyn MigrationTrait>> { | ||||||
|  |         vec![Box::new(m20220101_000001_create_table::Migration)] | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										553
									
								
								models/migration/src/m20220101_000001_create_table.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										553
									
								
								models/migration/src/m20220101_000001_create_table.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,553 @@ | |||||||
|  | use chrono_tz::{Tz, TZ_VARIANTS}; | ||||||
|  | use sea_orm_migration::prelude::*; | ||||||
|  |  | ||||||
|  | use crate::extension::postgres::Type; | ||||||
|  |  | ||||||
|  | pub struct Migration; | ||||||
|  |  | ||||||
|  | impl MigrationName for Migration { | ||||||
|  |     fn name(&self) -> &str { | ||||||
|  |         "m20220101_000001_create_table" | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #[derive(Iden)] | ||||||
|  | pub enum Guild { | ||||||
|  |     Table, | ||||||
|  |     Id, | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #[derive(Iden)] | ||||||
|  | pub enum Channel { | ||||||
|  |     Table, | ||||||
|  |     Id, | ||||||
|  |     GuildId, | ||||||
|  |     Nudge, | ||||||
|  |     WebhookId, | ||||||
|  |     WebhookToken, | ||||||
|  |     Paused, | ||||||
|  |     PausedUntil, | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #[derive(Iden)] | ||||||
|  | pub enum User { | ||||||
|  |     Table, | ||||||
|  |     Id, | ||||||
|  |     DmChannel, | ||||||
|  |     Timezone, | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #[derive(Iden)] | ||||||
|  | pub enum Reminder { | ||||||
|  |     Table, | ||||||
|  |     Id, | ||||||
|  |     Uid, | ||||||
|  |     Name, | ||||||
|  |     ChannelId, | ||||||
|  |     UtcTime, | ||||||
|  |     Timezone, | ||||||
|  |     IntervalSeconds, | ||||||
|  |     IntervalMonths, | ||||||
|  |     Enabled, | ||||||
|  |     Expires, | ||||||
|  |     Username, | ||||||
|  |     Avatar, | ||||||
|  |     Content, | ||||||
|  |     Tts, | ||||||
|  |     Attachment, | ||||||
|  |     AttachmentName, | ||||||
|  |     EmbedTitle, | ||||||
|  |     EmbedDescription, | ||||||
|  |     EmbedImageUrl, | ||||||
|  |     EmbedThumbnailUrl, | ||||||
|  |     EmbedFooter, | ||||||
|  |     EmbedFooterUrl, | ||||||
|  |     EmbedAuthor, | ||||||
|  |     EmbedAuthorUrl, | ||||||
|  |     EmbedColor, | ||||||
|  |     EmbedFields, | ||||||
|  |     SetAt, | ||||||
|  |     SetBy, | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #[derive(Iden)] | ||||||
|  | pub enum ReminderTemplate { | ||||||
|  |     Table, | ||||||
|  |     Id, | ||||||
|  |     GuildId, | ||||||
|  |     Name, | ||||||
|  |     Username, | ||||||
|  |     Avatar, | ||||||
|  |     Content, | ||||||
|  |     Tts, | ||||||
|  |     Attachment, | ||||||
|  |     AttachmentName, | ||||||
|  |     EmbedTitle, | ||||||
|  |     EmbedDescription, | ||||||
|  |     EmbedImageUrl, | ||||||
|  |     EmbedThumbnailUrl, | ||||||
|  |     EmbedFooter, | ||||||
|  |     EmbedFooterUrl, | ||||||
|  |     EmbedAuthor, | ||||||
|  |     EmbedAuthorUrl, | ||||||
|  |     EmbedColor, | ||||||
|  |     EmbedFields, | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #[derive(Iden)] | ||||||
|  | pub enum Timer { | ||||||
|  |     Table, | ||||||
|  |     Id, | ||||||
|  |     StartTime, | ||||||
|  |     Name, | ||||||
|  |     UserId, | ||||||
|  |     GuildId, | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #[derive(Iden)] | ||||||
|  | pub enum Todo { | ||||||
|  |     Table, | ||||||
|  |     Id, | ||||||
|  |     UserId, | ||||||
|  |     GuildId, | ||||||
|  |     ChannelId, | ||||||
|  |     Value, | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #[derive(Iden)] | ||||||
|  | pub enum CommandMacro { | ||||||
|  |     Table, | ||||||
|  |     Id, | ||||||
|  |     GuildId, | ||||||
|  |     Name, | ||||||
|  |     Description, | ||||||
|  |     Commands, | ||||||
|  | } | ||||||
|  |  | ||||||
|  | pub enum Timezone { | ||||||
|  |     Type, | ||||||
|  |     Tz(Tz), | ||||||
|  | } | ||||||
|  |  | ||||||
|  | impl Iden for Timezone { | ||||||
|  |     fn unquoted(&self, s: &mut dyn Write) { | ||||||
|  |         write!( | ||||||
|  |             s, | ||||||
|  |             "{}", | ||||||
|  |             match self { | ||||||
|  |                 Self::Type => "timezone".to_string(), | ||||||
|  |                 Self::Tz(tz) => tz.to_string(), | ||||||
|  |             } | ||||||
|  |         ) | ||||||
|  |         .unwrap(); | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #[async_trait::async_trait] | ||||||
|  | impl MigrationTrait for Migration { | ||||||
|  |     async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> { | ||||||
|  |         manager | ||||||
|  |             .create_type( | ||||||
|  |                 Type::create() | ||||||
|  |                     .as_enum(Timezone::Type) | ||||||
|  |                     .values(TZ_VARIANTS.iter().map(|tz| Timezone::Tz(tz.to_owned()))) | ||||||
|  |                     .to_owned(), | ||||||
|  |             ) | ||||||
|  |             .await?; | ||||||
|  |  | ||||||
|  |         manager | ||||||
|  |             .create_table( | ||||||
|  |                 Table::create() | ||||||
|  |                     .table(Guild::Table) | ||||||
|  |                     .if_not_exists() | ||||||
|  |                     .col(ColumnDef::new(Guild::Id).big_integer().not_null().primary_key()) | ||||||
|  |                     .to_owned(), | ||||||
|  |             ) | ||||||
|  |             .await?; | ||||||
|  |  | ||||||
|  |         manager | ||||||
|  |             .create_table( | ||||||
|  |                 Table::create() | ||||||
|  |                     .table(Channel::Table) | ||||||
|  |                     .if_not_exists() | ||||||
|  |                     .col(ColumnDef::new(Channel::Id).big_integer().not_null().primary_key()) | ||||||
|  |                     .col(ColumnDef::new(Channel::GuildId).big_integer()) | ||||||
|  |                     .col(ColumnDef::new(Channel::Nudge).integer().not_null().default(0)) | ||||||
|  |                     .col(ColumnDef::new(Channel::WebhookId).big_integer()) | ||||||
|  |                     .col(ColumnDef::new(Channel::WebhookToken).string()) | ||||||
|  |                     .col(ColumnDef::new(Channel::Paused).boolean().not_null().default(false)) | ||||||
|  |                     .col(ColumnDef::new(Channel::PausedUntil).date_time()) | ||||||
|  |                     .to_owned(), | ||||||
|  |             ) | ||||||
|  |             .await?; | ||||||
|  |  | ||||||
|  |         manager | ||||||
|  |             .create_foreign_key( | ||||||
|  |                 ForeignKey::create() | ||||||
|  |                     .name("fk_channel_guild") | ||||||
|  |                     .from(Channel::Table, Channel::GuildId) | ||||||
|  |                     .to(Guild::Table, Guild::Id) | ||||||
|  |                     .on_delete(ForeignKeyAction::Cascade) | ||||||
|  |                     .to_owned(), | ||||||
|  |             ) | ||||||
|  |             .await?; | ||||||
|  |  | ||||||
|  |         manager | ||||||
|  |             .create_table( | ||||||
|  |                 Table::create() | ||||||
|  |                     .table(User::Table) | ||||||
|  |                     .if_not_exists() | ||||||
|  |                     .col(ColumnDef::new(User::Id).big_integer().not_null().primary_key()) | ||||||
|  |                     .col(ColumnDef::new(User::DmChannel).big_integer().not_null()) | ||||||
|  |                     .col( | ||||||
|  |                         ColumnDef::new(User::Timezone) | ||||||
|  |                             .custom(Timezone::Type) | ||||||
|  |                             .not_null() | ||||||
|  |                             .default("UTC"), | ||||||
|  |                     ) | ||||||
|  |                     .to_owned(), | ||||||
|  |             ) | ||||||
|  |             .await?; | ||||||
|  |  | ||||||
|  |         manager | ||||||
|  |             .create_foreign_key( | ||||||
|  |                 ForeignKey::create() | ||||||
|  |                     .name("fk_user_channel") | ||||||
|  |                     .from(User::Table, User::DmChannel) | ||||||
|  |                     .to(Channel::Table, Channel::Id) | ||||||
|  |                     .on_delete(ForeignKeyAction::Cascade) | ||||||
|  |                     .to_owned(), | ||||||
|  |             ) | ||||||
|  |             .await?; | ||||||
|  |  | ||||||
|  |         manager | ||||||
|  |             .create_table( | ||||||
|  |                 Table::create() | ||||||
|  |                     .table(Reminder::Table) | ||||||
|  |                     .if_not_exists() | ||||||
|  |                     .col( | ||||||
|  |                         ColumnDef::new(Reminder::Id) | ||||||
|  |                             .integer() | ||||||
|  |                             .not_null() | ||||||
|  |                             .auto_increment() | ||||||
|  |                             .primary_key(), | ||||||
|  |                     ) | ||||||
|  |                     .col(ColumnDef::new(Reminder::Uid).string().char_len(64).not_null()) | ||||||
|  |                     .col( | ||||||
|  |                         ColumnDef::new(Reminder::Name) | ||||||
|  |                             .string() | ||||||
|  |                             .char_len(24) | ||||||
|  |                             .default("Reminder") | ||||||
|  |                             .not_null(), | ||||||
|  |                     ) | ||||||
|  |                     .col(ColumnDef::new(Reminder::ChannelId).big_integer().not_null()) | ||||||
|  |                     .col(ColumnDef::new(Reminder::UtcTime).date_time().not_null()) | ||||||
|  |                     .col( | ||||||
|  |                         ColumnDef::new(Reminder::Timezone) | ||||||
|  |                             .custom(Timezone::Type) | ||||||
|  |                             .not_null() | ||||||
|  |                             .default("UTC"), | ||||||
|  |                     ) | ||||||
|  |                     .col(ColumnDef::new(Reminder::IntervalSeconds).integer()) | ||||||
|  |                     .col(ColumnDef::new(Reminder::IntervalMonths).integer()) | ||||||
|  |                     .col(ColumnDef::new(Reminder::Enabled).boolean().not_null().default(false)) | ||||||
|  |                     .col(ColumnDef::new(Reminder::Expires).date_time()) | ||||||
|  |                     .col(ColumnDef::new(Reminder::Username).string_len(32)) | ||||||
|  |                     .col(ColumnDef::new(Reminder::Avatar).string_len(512)) | ||||||
|  |                     .col(ColumnDef::new(Reminder::Content).string_len(2000)) | ||||||
|  |                     .col(ColumnDef::new(Reminder::Tts).boolean().not_null().default(false)) | ||||||
|  |                     .col(ColumnDef::new(Reminder::Attachment).binary_len(8 * 1024 * 1024)) | ||||||
|  |                     .col(ColumnDef::new(Reminder::AttachmentName).string_len(260)) | ||||||
|  |                     .col(ColumnDef::new(Reminder::EmbedTitle).string_len(256)) | ||||||
|  |                     .col(ColumnDef::new(Reminder::EmbedDescription).string_len(4096)) | ||||||
|  |                     .col(ColumnDef::new(Reminder::EmbedImageUrl).string_len(500)) | ||||||
|  |                     .col(ColumnDef::new(Reminder::EmbedThumbnailUrl).string_len(500)) | ||||||
|  |                     .col(ColumnDef::new(Reminder::EmbedFooter).string_len(2048)) | ||||||
|  |                     .col(ColumnDef::new(Reminder::EmbedFooterUrl).string_len(500)) | ||||||
|  |                     .col(ColumnDef::new(Reminder::EmbedAuthor).string_len(256)) | ||||||
|  |                     .col(ColumnDef::new(Reminder::EmbedAuthorUrl).string_len(500)) | ||||||
|  |                     .col(ColumnDef::new(Reminder::EmbedColor).integer()) | ||||||
|  |                     .col(ColumnDef::new(Reminder::EmbedFields).json()) | ||||||
|  |                     .col(ColumnDef::new(Reminder::SetAt).date_time().not_null().default("NOW()")) | ||||||
|  |                     .col(ColumnDef::new(Reminder::SetBy).big_integer().not_null()) | ||||||
|  |                     .to_owned(), | ||||||
|  |             ) | ||||||
|  |             .await?; | ||||||
|  |  | ||||||
|  |         manager | ||||||
|  |             .create_foreign_key( | ||||||
|  |                 ForeignKey::create() | ||||||
|  |                     .name("fk_reminder_channel") | ||||||
|  |                     .from(Reminder::Table, Reminder::ChannelId) | ||||||
|  |                     .to(Channel::Table, Channel::Id) | ||||||
|  |                     .on_delete(ForeignKeyAction::Cascade) | ||||||
|  |                     .to_owned(), | ||||||
|  |             ) | ||||||
|  |             .await?; | ||||||
|  |  | ||||||
|  |         manager | ||||||
|  |             .create_foreign_key( | ||||||
|  |                 ForeignKey::create() | ||||||
|  |                     .name("fk_reminder_user") | ||||||
|  |                     .from(Reminder::Table, Reminder::SetBy) | ||||||
|  |                     .to(User::Table, User::Id) | ||||||
|  |                     .on_delete(ForeignKeyAction::Cascade) | ||||||
|  |                     .to_owned(), | ||||||
|  |             ) | ||||||
|  |             .await?; | ||||||
|  |  | ||||||
|  |         manager | ||||||
|  |             .create_table( | ||||||
|  |                 Table::create() | ||||||
|  |                     .table(ReminderTemplate::Table) | ||||||
|  |                     .if_not_exists() | ||||||
|  |                     .col( | ||||||
|  |                         ColumnDef::new(ReminderTemplate::Id) | ||||||
|  |                             .integer() | ||||||
|  |                             .not_null() | ||||||
|  |                             .auto_increment() | ||||||
|  |                             .primary_key(), | ||||||
|  |                     ) | ||||||
|  |                     .col(ColumnDef::new(ReminderTemplate::GuildId).big_integer().not_null()) | ||||||
|  |                     .col( | ||||||
|  |                         ColumnDef::new(ReminderTemplate::Name) | ||||||
|  |                             .string() | ||||||
|  |                             .char_len(24) | ||||||
|  |                             .default("Reminder") | ||||||
|  |                             .not_null(), | ||||||
|  |                     ) | ||||||
|  |                     .col(ColumnDef::new(ReminderTemplate::Username).string_len(32)) | ||||||
|  |                     .col(ColumnDef::new(ReminderTemplate::Avatar).string_len(512)) | ||||||
|  |                     .col(ColumnDef::new(ReminderTemplate::Content).string_len(2000)) | ||||||
|  |                     .col(ColumnDef::new(ReminderTemplate::Tts).boolean().not_null().default(false)) | ||||||
|  |                     .col(ColumnDef::new(ReminderTemplate::Attachment).binary_len(8 * 1024 * 1024)) | ||||||
|  |                     .col(ColumnDef::new(ReminderTemplate::AttachmentName).string_len(260)) | ||||||
|  |                     .col(ColumnDef::new(ReminderTemplate::EmbedTitle).string_len(256)) | ||||||
|  |                     .col(ColumnDef::new(ReminderTemplate::EmbedDescription).string_len(4096)) | ||||||
|  |                     .col(ColumnDef::new(ReminderTemplate::EmbedImageUrl).string_len(500)) | ||||||
|  |                     .col(ColumnDef::new(ReminderTemplate::EmbedThumbnailUrl).string_len(500)) | ||||||
|  |                     .col(ColumnDef::new(ReminderTemplate::EmbedFooter).string_len(2048)) | ||||||
|  |                     .col(ColumnDef::new(ReminderTemplate::EmbedFooterUrl).string_len(500)) | ||||||
|  |                     .col(ColumnDef::new(ReminderTemplate::EmbedAuthor).string_len(256)) | ||||||
|  |                     .col(ColumnDef::new(ReminderTemplate::EmbedAuthorUrl).string_len(500)) | ||||||
|  |                     .col(ColumnDef::new(ReminderTemplate::EmbedColor).integer()) | ||||||
|  |                     .col(ColumnDef::new(ReminderTemplate::EmbedFields).json()) | ||||||
|  |                     .to_owned(), | ||||||
|  |             ) | ||||||
|  |             .await?; | ||||||
|  |  | ||||||
|  |         manager | ||||||
|  |             .create_foreign_key( | ||||||
|  |                 ForeignKey::create() | ||||||
|  |                     .name("fk_reminder_template_guild") | ||||||
|  |                     .from(ReminderTemplate::Table, ReminderTemplate::GuildId) | ||||||
|  |                     .to(Guild::Table, Guild::Id) | ||||||
|  |                     .on_delete(ForeignKeyAction::Cascade) | ||||||
|  |                     .to_owned(), | ||||||
|  |             ) | ||||||
|  |             .await?; | ||||||
|  |  | ||||||
|  |         manager | ||||||
|  |             .create_table( | ||||||
|  |                 Table::create() | ||||||
|  |                     .table(Timer::Table) | ||||||
|  |                     .if_not_exists() | ||||||
|  |                     .col( | ||||||
|  |                         ColumnDef::new(Timer::Id) | ||||||
|  |                             .integer() | ||||||
|  |                             .not_null() | ||||||
|  |                             .auto_increment() | ||||||
|  |                             .primary_key(), | ||||||
|  |                     ) | ||||||
|  |                     .col(ColumnDef::new(Timer::StartTime).date_time().not_null().default("NOW()")) | ||||||
|  |                     .col(ColumnDef::new(Timer::Name).string_len(32).not_null().default("Timer")) | ||||||
|  |                     .col(ColumnDef::new(Timer::UserId).big_integer()) | ||||||
|  |                     .col(ColumnDef::new(Timer::GuildId).big_integer()) | ||||||
|  |                     .to_owned(), | ||||||
|  |             ) | ||||||
|  |             .await?; | ||||||
|  |  | ||||||
|  |         manager | ||||||
|  |             .create_foreign_key( | ||||||
|  |                 ForeignKey::create() | ||||||
|  |                     .name("fk_timer_user") | ||||||
|  |                     .from(Timer::Table, Timer::UserId) | ||||||
|  |                     .to(Guild::Table, Guild::Id) | ||||||
|  |                     .on_delete(ForeignKeyAction::Cascade) | ||||||
|  |                     .to_owned(), | ||||||
|  |             ) | ||||||
|  |             .await?; | ||||||
|  |  | ||||||
|  |         manager | ||||||
|  |             .create_foreign_key( | ||||||
|  |                 ForeignKey::create() | ||||||
|  |                     .name("fk_timer_guild") | ||||||
|  |                     .from(Timer::Table, Timer::GuildId) | ||||||
|  |                     .to(Guild::Table, Guild::Id) | ||||||
|  |                     .on_delete(ForeignKeyAction::Cascade) | ||||||
|  |                     .to_owned(), | ||||||
|  |             ) | ||||||
|  |             .await?; | ||||||
|  |  | ||||||
|  |         manager | ||||||
|  |             .create_table( | ||||||
|  |                 Table::create() | ||||||
|  |                     .table(Todo::Table) | ||||||
|  |                     .if_not_exists() | ||||||
|  |                     .col( | ||||||
|  |                         ColumnDef::new(Todo::Id) | ||||||
|  |                             .integer() | ||||||
|  |                             .not_null() | ||||||
|  |                             .auto_increment() | ||||||
|  |                             .primary_key(), | ||||||
|  |                     ) | ||||||
|  |                     .col(ColumnDef::new(Todo::UserId).big_integer()) | ||||||
|  |                     .col(ColumnDef::new(Todo::GuildId).big_integer()) | ||||||
|  |                     .col(ColumnDef::new(Todo::ChannelId).big_integer()) | ||||||
|  |                     .col(ColumnDef::new(Todo::Value).string_len(2000).not_null()) | ||||||
|  |                     .to_owned(), | ||||||
|  |             ) | ||||||
|  |             .await?; | ||||||
|  |  | ||||||
|  |         manager | ||||||
|  |             .create_foreign_key( | ||||||
|  |                 ForeignKey::create() | ||||||
|  |                     .name("fk_todo_user") | ||||||
|  |                     .from(Todo::Table, Todo::UserId) | ||||||
|  |                     .to(User::Table, User::Id) | ||||||
|  |                     .on_delete(ForeignKeyAction::Cascade) | ||||||
|  |                     .to_owned(), | ||||||
|  |             ) | ||||||
|  |             .await?; | ||||||
|  |  | ||||||
|  |         manager | ||||||
|  |             .create_foreign_key( | ||||||
|  |                 ForeignKey::create() | ||||||
|  |                     .name("fk_todo_guild") | ||||||
|  |                     .from(Todo::Table, Todo::GuildId) | ||||||
|  |                     .to(Guild::Table, Guild::Id) | ||||||
|  |                     .on_delete(ForeignKeyAction::Cascade) | ||||||
|  |                     .to_owned(), | ||||||
|  |             ) | ||||||
|  |             .await?; | ||||||
|  |  | ||||||
|  |         manager | ||||||
|  |             .create_foreign_key( | ||||||
|  |                 ForeignKey::create() | ||||||
|  |                     .name("fk_todo_channel") | ||||||
|  |                     .from(Todo::Table, Todo::ChannelId) | ||||||
|  |                     .to(Channel::Table, Channel::Id) | ||||||
|  |                     .on_delete(ForeignKeyAction::Cascade) | ||||||
|  |                     .to_owned(), | ||||||
|  |             ) | ||||||
|  |             .await?; | ||||||
|  |  | ||||||
|  |         manager | ||||||
|  |             .create_table( | ||||||
|  |                 Table::create() | ||||||
|  |                     .table(CommandMacro::Table) | ||||||
|  |                     .if_not_exists() | ||||||
|  |                     .col( | ||||||
|  |                         ColumnDef::new(CommandMacro::Id) | ||||||
|  |                             .integer() | ||||||
|  |                             .not_null() | ||||||
|  |                             .auto_increment() | ||||||
|  |                             .primary_key(), | ||||||
|  |                     ) | ||||||
|  |                     .col(ColumnDef::new(CommandMacro::GuildId).big_integer().not_null()) | ||||||
|  |                     .col(ColumnDef::new(CommandMacro::Name).string_len(100).not_null()) | ||||||
|  |                     .col(ColumnDef::new(CommandMacro::Description).string_len(100)) | ||||||
|  |                     .col(ColumnDef::new(CommandMacro::Commands).json()) | ||||||
|  |                     .to_owned(), | ||||||
|  |             ) | ||||||
|  |             .await?; | ||||||
|  |  | ||||||
|  |         manager | ||||||
|  |             .create_foreign_key( | ||||||
|  |                 ForeignKey::create() | ||||||
|  |                     .name("fk_command_macro_guild") | ||||||
|  |                     .from(CommandMacro::Table, CommandMacro::GuildId) | ||||||
|  |                     .to(Guild::Table, Guild::Id) | ||||||
|  |                     .on_delete(ForeignKeyAction::Cascade) | ||||||
|  |                     .to_owned(), | ||||||
|  |             ) | ||||||
|  |             .await?; | ||||||
|  |  | ||||||
|  |         Ok(()) | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> { | ||||||
|  |         manager | ||||||
|  |             .drop_foreign_key( | ||||||
|  |                 ForeignKey::drop().table(Channel::Table).name("fk_channel_guild").to_owned(), | ||||||
|  |             ) | ||||||
|  |             .await?; | ||||||
|  |         manager | ||||||
|  |             .drop_foreign_key( | ||||||
|  |                 ForeignKey::drop().table(User::Table).name("fk_user_channel").to_owned(), | ||||||
|  |             ) | ||||||
|  |             .await?; | ||||||
|  |         manager | ||||||
|  |             .drop_foreign_key( | ||||||
|  |                 ForeignKey::drop().table(Reminder::Table).name("fk_reminder_channel").to_owned(), | ||||||
|  |             ) | ||||||
|  |             .await?; | ||||||
|  |         manager | ||||||
|  |             .drop_foreign_key( | ||||||
|  |                 ForeignKey::drop().table(Reminder::Table).name("fk_reminder_user").to_owned(), | ||||||
|  |             ) | ||||||
|  |             .await?; | ||||||
|  |         manager | ||||||
|  |             .drop_foreign_key( | ||||||
|  |                 ForeignKey::drop() | ||||||
|  |                     .table(ReminderTemplate::Table) | ||||||
|  |                     .name("fk_reminder_template_guild") | ||||||
|  |                     .to_owned(), | ||||||
|  |             ) | ||||||
|  |             .await?; | ||||||
|  |         manager | ||||||
|  |             .drop_foreign_key( | ||||||
|  |                 ForeignKey::drop().table(Timer::Table).name("fk_timer_user").to_owned(), | ||||||
|  |             ) | ||||||
|  |             .await?; | ||||||
|  |         manager | ||||||
|  |             .drop_foreign_key( | ||||||
|  |                 ForeignKey::drop().table(Timer::Table).name("fk_timer_guild").to_owned(), | ||||||
|  |             ) | ||||||
|  |             .await?; | ||||||
|  |         manager | ||||||
|  |             .drop_foreign_key(ForeignKey::drop().table(Todo::Table).name("fk_todo_user").to_owned()) | ||||||
|  |             .await?; | ||||||
|  |         manager | ||||||
|  |             .drop_foreign_key( | ||||||
|  |                 ForeignKey::drop().table(Todo::Table).name("fk_todo_guild").to_owned(), | ||||||
|  |             ) | ||||||
|  |             .await?; | ||||||
|  |         manager | ||||||
|  |             .drop_foreign_key( | ||||||
|  |                 ForeignKey::drop().table(Todo::Table).name("fk_todo_channel").to_owned(), | ||||||
|  |             ) | ||||||
|  |             .await?; | ||||||
|  |         manager | ||||||
|  |             .drop_foreign_key( | ||||||
|  |                 ForeignKey::drop() | ||||||
|  |                     .table(CommandMacro::Table) | ||||||
|  |                     .name("fk_command_macro_guild") | ||||||
|  |                     .to_owned(), | ||||||
|  |             ) | ||||||
|  |             .await?; | ||||||
|  |  | ||||||
|  |         manager.drop_table(Table::drop().table(Guild::Table).to_owned()).await?; | ||||||
|  |         manager.drop_table(Table::drop().table(Channel::Table).to_owned()).await?; | ||||||
|  |         manager.drop_table(Table::drop().table(User::Table).to_owned()).await?; | ||||||
|  |         manager.drop_table(Table::drop().table(Reminder::Table).to_owned()).await?; | ||||||
|  |         manager.drop_table(Table::drop().table(ReminderTemplate::Table).to_owned()).await?; | ||||||
|  |         manager.drop_table(Table::drop().table(Timer::Table).to_owned()).await?; | ||||||
|  |         manager.drop_table(Table::drop().table(Todo::Table).to_owned()).await?; | ||||||
|  |         manager.drop_table(Table::drop().table(CommandMacro::Table).to_owned()).await?; | ||||||
|  |  | ||||||
|  |         manager.drop_type(Type::drop().name(Timezone::Type).to_owned()).await?; | ||||||
|  |  | ||||||
|  |         Ok(()) | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										6
									
								
								models/migration/src/main.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								models/migration/src/main.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | |||||||
|  | use sea_orm_migration::prelude::*; | ||||||
|  |  | ||||||
|  | #[async_std::main] | ||||||
|  | async fn main() { | ||||||
|  |     cli::run_cli(migration::Migrator).await; | ||||||
|  | } | ||||||
							
								
								
									
										1
									
								
								models/src/lib.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								models/src/lib.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  |  | ||||||
		Reference in New Issue
	
	Block a user