From d50799828e28271183875ef5627075c220388e85 Mon Sep 17 00:00:00 2001 From: Beau Hawkinson <72956780+Twonarly1@users.noreply.github.com> Date: Thu, 2 Jan 2025 20:59:56 -0600 Subject: [PATCH 1/4] feat: remove initial dirzzle relations --- src/generated/graphql/schema.executable.ts | 16 +++++++-------- src/lib/drizzle/schema/comment.table.ts | 15 -------------- src/lib/drizzle/schema/downvote.table.ts | 16 +-------------- src/lib/drizzle/schema/organization.table.ts | 11 ---------- src/lib/drizzle/schema/post.table.ts | 20 ------------------- src/lib/drizzle/schema/project.table.ts | 13 ------------ src/lib/drizzle/schema/upvote.table.ts | 15 -------------- src/lib/drizzle/schema/user.table.ts | 17 ---------------- .../schema/userToOrganization.table.ts | 11 +++++----- 9 files changed, 15 insertions(+), 119 deletions(-) diff --git a/src/generated/graphql/schema.executable.ts b/src/generated/graphql/schema.executable.ts index f9a3768..a5017b2 100644 --- a/src/generated/graphql/schema.executable.ts +++ b/src/generated/graphql/schema.executable.ts @@ -120,7 +120,7 @@ const spec_userOrganization = { }), description: undefined, extensions: { - oid: "77872", + oid: "92617", isTableLike: true, pg: { serviceName: "main", @@ -200,7 +200,7 @@ const spec_downvote = { }), description: undefined, extensions: { - oid: "78725", + oid: "92682", isTableLike: true, pg: { serviceName: "main", @@ -280,7 +280,7 @@ const spec_upvote = { }), description: undefined, extensions: { - oid: "77850", + oid: "92595", isTableLike: true, pg: { serviceName: "main", @@ -360,7 +360,7 @@ const spec_organization = { }), description: undefined, extensions: { - oid: "77812", + oid: "92557", isTableLike: true, pg: { serviceName: "main", @@ -452,7 +452,7 @@ const spec_comment = { }), description: undefined, extensions: { - oid: "78467", + oid: "92662", isTableLike: true, pg: { serviceName: "main", @@ -556,7 +556,7 @@ const spec_post = { }), description: undefined, extensions: { - oid: "77826", + oid: "92571", isTableLike: true, pg: { serviceName: "main", @@ -672,7 +672,7 @@ const spec_project = { }), description: undefined, extensions: { - oid: "77836", + oid: "92581", isTableLike: true, pg: { serviceName: "main", @@ -776,7 +776,7 @@ const spec_user = { }), description: undefined, extensions: { - oid: "77860", + oid: "92605", isTableLike: true, pg: { serviceName: "main", diff --git a/src/lib/drizzle/schema/comment.table.ts b/src/lib/drizzle/schema/comment.table.ts index d81aa58..ca9be3f 100644 --- a/src/lib/drizzle/schema/comment.table.ts +++ b/src/lib/drizzle/schema/comment.table.ts @@ -1,4 +1,3 @@ -import { relations } from "drizzle-orm"; import { pgTable, text, uuid } from "drizzle-orm/pg-core"; import { defaultDate, defaultId } from "./constants"; @@ -27,20 +26,6 @@ export const comments = pgTable("comment", { updatedAt: defaultDate(), }); -/** - * Relations for the comment table. - */ -export const commentRelations = relations(comments, ({ one }) => ({ - post: one(posts, { - fields: [comments.postId], - references: [posts.id], - }), - user: one(users, { - fields: [comments.userId], - references: [users.id], - }), -})); - /** * Type helpers related to the comment table. */ diff --git a/src/lib/drizzle/schema/downvote.table.ts b/src/lib/drizzle/schema/downvote.table.ts index 9aab720..7a25503 100644 --- a/src/lib/drizzle/schema/downvote.table.ts +++ b/src/lib/drizzle/schema/downvote.table.ts @@ -1,4 +1,4 @@ -import { relations } from "drizzle-orm"; +// import { relations } from "drizzle-orm"; import { pgTable, unique, uuid } from "drizzle-orm/pg-core"; import { defaultDate, defaultId } from "./constants"; @@ -30,20 +30,6 @@ export const downvotes = pgTable( (table) => [unique().on(table.postId, table.userId)] ); -/** - * Relations for the downvote table. - */ -export const downvoteRelations = relations(downvotes, ({ one }) => ({ - post: one(posts, { - fields: [downvotes.postId], - references: [posts.id], - }), - user: one(users, { - fields: [downvotes.userId], - references: [users.id], - }), -})); - /** * Type helpers related to the downvote table. */ diff --git a/src/lib/drizzle/schema/organization.table.ts b/src/lib/drizzle/schema/organization.table.ts index cd3dae7..456f389 100644 --- a/src/lib/drizzle/schema/organization.table.ts +++ b/src/lib/drizzle/schema/organization.table.ts @@ -1,9 +1,6 @@ -import { relations } from "drizzle-orm"; import { pgTable, text } from "drizzle-orm/pg-core"; import { defaultDate, defaultId } from "./constants"; -import { projects } from "./project.table"; -import { usersToOrganizations } from "./userToOrganization.table"; import type { InferInsertModel, InferSelectModel } from "drizzle-orm"; @@ -18,14 +15,6 @@ export const organizations = pgTable("organization", { updatedAt: defaultDate(), }); -/** - * Relations for the organization table. - */ -export const organizationRelations = relations(organizations, ({ many }) => ({ - projects: many(projects), - users: many(usersToOrganizations), -})); - /** * Type helpers related to the organization table. */ diff --git a/src/lib/drizzle/schema/post.table.ts b/src/lib/drizzle/schema/post.table.ts index 61f3c9b..d49b684 100644 --- a/src/lib/drizzle/schema/post.table.ts +++ b/src/lib/drizzle/schema/post.table.ts @@ -1,11 +1,7 @@ -import { relations } from "drizzle-orm"; import { pgTable, text, uuid } from "drizzle-orm/pg-core"; -import { comments } from "./comment.table"; import { defaultDate, defaultId } from "./constants"; -import { downvotes } from "./downvote.table"; import { projects } from "./project.table"; -import { upvotes } from "./upvote.table"; import { users } from "./user.table"; import type { InferInsertModel, InferSelectModel } from "drizzle-orm"; @@ -31,22 +27,6 @@ export const posts = pgTable("post", { updatedAt: defaultDate(), }); -/** - * Relations for the post table. - */ -export const postRelations = relations(posts, ({ one, many }) => ({ - project: one(projects, { - fields: [posts.projectId], - references: [projects.id], - }), - user: one(users, { - fields: [posts.userId], - references: [users.id], - }), - comments: many(comments), - upvotes: many(upvotes), - downvotes: many(downvotes), -})); /** * Type helpers related to the post table. diff --git a/src/lib/drizzle/schema/project.table.ts b/src/lib/drizzle/schema/project.table.ts index fee0047..fb1a349 100644 --- a/src/lib/drizzle/schema/project.table.ts +++ b/src/lib/drizzle/schema/project.table.ts @@ -1,9 +1,7 @@ -import { relations } from "drizzle-orm"; import { pgTable, text, unique, uuid } from "drizzle-orm/pg-core"; import { defaultDate, defaultId } from "./constants"; import { organizations } from "./organization.table"; -import { posts } from "./post.table"; import type { InferInsertModel, InferSelectModel } from "drizzle-orm"; @@ -29,17 +27,6 @@ export const projects = pgTable( (table) => [unique().on(table.slug, table.organizationId)] ); -/** - * Relations for the project table. - */ -export const projectRelations = relations(projects, ({ one, many }) => ({ - organization: one(organizations, { - fields: [projects.organizationId], - references: [organizations.id], - }), - posts: many(posts), -})); - /** * Type helpers related to the project table. */ diff --git a/src/lib/drizzle/schema/upvote.table.ts b/src/lib/drizzle/schema/upvote.table.ts index a14780a..ada6cf9 100644 --- a/src/lib/drizzle/schema/upvote.table.ts +++ b/src/lib/drizzle/schema/upvote.table.ts @@ -1,4 +1,3 @@ -import { relations } from "drizzle-orm"; import { pgTable, unique, uuid } from "drizzle-orm/pg-core"; import { defaultDate, defaultId } from "./constants"; @@ -30,20 +29,6 @@ export const upvotes = pgTable( (table) => [unique().on(table.postId, table.userId)] ); -/** - * Relations for the upvote table. - */ -export const upvoteRelations = relations(upvotes, ({ one }) => ({ - post: one(posts, { - fields: [upvotes.postId], - references: [posts.id], - }), - user: one(users, { - fields: [upvotes.userId], - references: [users.id], - }), -})); - /** * Type helpers related to the upvote table. */ diff --git a/src/lib/drizzle/schema/user.table.ts b/src/lib/drizzle/schema/user.table.ts index 645e29e..1e9b190 100644 --- a/src/lib/drizzle/schema/user.table.ts +++ b/src/lib/drizzle/schema/user.table.ts @@ -1,12 +1,6 @@ -import { relations } from "drizzle-orm"; import { pgTable, text, uuid } from "drizzle-orm/pg-core"; -import { comments } from "./comment.table"; import { defaultDate, defaultId } from "./constants"; -import { downvotes } from "./downvote.table"; -import { posts } from "./post.table"; -import { upvotes } from "./upvote.table"; -import { usersToOrganizations } from "./userToOrganization.table"; import type { InferInsertModel, InferSelectModel } from "drizzle-orm"; @@ -24,17 +18,6 @@ export const users = pgTable("user", { updatedAt: defaultDate(), }); -/** - * Relations for the user table. - */ -export const userRelations = relations(users, ({ many }) => ({ - organizations: many(usersToOrganizations), - posts: many(posts), - comments: many(comments), - upvotes: many(upvotes), - downvotes: many(downvotes), -})); - /** * Type helpers related to the user table. */ diff --git a/src/lib/drizzle/schema/userToOrganization.table.ts b/src/lib/drizzle/schema/userToOrganization.table.ts index 4478681..ccd3db4 100644 --- a/src/lib/drizzle/schema/userToOrganization.table.ts +++ b/src/lib/drizzle/schema/userToOrganization.table.ts @@ -1,14 +1,15 @@ -import { - type InferInsertModel, - type InferSelectModel, - relations, -} from "drizzle-orm"; +import { relations } from "drizzle-orm"; import { pgTable, unique, uuid } from "drizzle-orm/pg-core"; import { defaultDate } from "./constants"; import { organizations } from "./organization.table"; import { users } from "./user.table"; +import type { + InferInsertModel, + InferSelectModel, +} from "drizzle-orm"; + /** * Users to organizations join table. */ From 8393eef8a92b1aa4bb7f0a5d792c0cc1c5ea2883 Mon Sep 17 00:00:00 2001 From: Beau Hawkinson <72956780+Twonarly1@users.noreply.github.com> Date: Thu, 2 Jan 2025 21:00:10 -0600 Subject: [PATCH 2/4] feat: remove initial dirzzle relations --- src/lib/drizzle/schema/post.table.ts | 1 - src/lib/drizzle/schema/userToOrganization.table.ts | 5 +---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/src/lib/drizzle/schema/post.table.ts b/src/lib/drizzle/schema/post.table.ts index d49b684..0e9be52 100644 --- a/src/lib/drizzle/schema/post.table.ts +++ b/src/lib/drizzle/schema/post.table.ts @@ -27,7 +27,6 @@ export const posts = pgTable("post", { updatedAt: defaultDate(), }); - /** * Type helpers related to the post table. */ diff --git a/src/lib/drizzle/schema/userToOrganization.table.ts b/src/lib/drizzle/schema/userToOrganization.table.ts index ccd3db4..7a00aab 100644 --- a/src/lib/drizzle/schema/userToOrganization.table.ts +++ b/src/lib/drizzle/schema/userToOrganization.table.ts @@ -5,10 +5,7 @@ import { defaultDate } from "./constants"; import { organizations } from "./organization.table"; import { users } from "./user.table"; -import type { - InferInsertModel, - InferSelectModel, -} from "drizzle-orm"; +import type { InferInsertModel, InferSelectModel } from "drizzle-orm"; /** * Users to organizations join table. From ccb5caf95d848fed79c763e6fec840d13d1f4eb7 Mon Sep 17 00:00:00 2001 From: Beau Hawkinson <72956780+Twonarly1@users.noreply.github.com> Date: Thu, 2 Jan 2025 21:02:51 -0600 Subject: [PATCH 3/4] chore: remove commented code --- src/lib/drizzle/schema/downvote.table.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/lib/drizzle/schema/downvote.table.ts b/src/lib/drizzle/schema/downvote.table.ts index 7a25503..264af47 100644 --- a/src/lib/drizzle/schema/downvote.table.ts +++ b/src/lib/drizzle/schema/downvote.table.ts @@ -1,4 +1,3 @@ -// import { relations } from "drizzle-orm"; import { pgTable, unique, uuid } from "drizzle-orm/pg-core"; import { defaultDate, defaultId } from "./constants"; From 136597ec5b86158ecfbced78d596fd0764dfae4b Mon Sep 17 00:00:00 2001 From: Beau Hawkinson <72956780+Twonarly1@users.noreply.github.com> Date: Thu, 2 Jan 2025 22:03:14 -0600 Subject: [PATCH 4/4] feat: remove userToOrg relations --- bun.lockb | Bin 99288 -> 99584 bytes src/generated/graphql/schema.executable.ts | 16 ++++++++-------- .../schema/userToOrganization.table.ts | 18 ------------------ 3 files changed, 8 insertions(+), 26 deletions(-) diff --git a/bun.lockb b/bun.lockb index ed14116a27bbd9663e3ae8f2476e97e84375d643..d242f8243fd91ccba42c44c9f1001b0a5e26d574 100755 GIT binary patch delta 18793 zcmeHv2~<=^w{BMpNP{i2%mN|`sEjhn&|pBt24`(&1w?3O1?Qn#;}{jiQjY^pQKL93 zDshTajI+_GiJGW!j5tJbOf>5I_US&#|G)hA{qL@O-&$|2dt6`b+Eu%D?b@}g&gpX~ zFHbeoe_=K!pi$Zxr*Vh7J}W)E!DE@nlkO`cl84O*p0Iwy#f|k3Z`wVs7-%oO92qMVJU2JcJ4Sj1lng4) z%paaPR3^(A0j;=JqmasTMx=>+7_{4gcLj9;%{Pe2_*Ui{bp)o;D0YBSC+k4TnsOt3 zgF;8}Pe4iOT~G_qo7_h3=vRiOuugvwlxp2=4L-;NC8<%tkp*PKK;BvIsMEs=sMTku z6}K3imzLEP40$XX64Y7;H&frAp`1MM&*fP|(*~y%m&lGf7}`0&bEL1Rfx(Kr!a-@p z+2{>Cwa+OoEC_?{AjrW$enW0!-@DH_&1SQL)o_lVkfc~Wnn6k$G~G*JTTi7y2u z?SqOlOQ`i2@Kmn_g@g4KUWU1GZX}brgKq`i4O9W1M&aWvlfh7Z`mo~k!cj8WY4Gr` zPQL(xq^P^Gqmzvd!>s^Cl|CNj@UgyQ6N92?P%_95Q(sFh47)0_DlqHYi<#YrDf8mSxtWO-~egXQ}`so@$> z>bQxK?r&}|&=&G!NKSEPaR!X=5Id0Rv+@el)AEXCr%^@`)i=PP{}6aft~3qR`Gy!~ z)CrV&ybEdxdeuntLJdPY1WG*=rIlp2$juxzB3ql04K3Q@%#oR(N~3(fwm?hk+5|j} zqzr*aF1ZIvG5R*xP_7FX`)j2iiVP{1me9wA1#8G9(gMtmG$@c3;6?tYsfX@el))j| zRt9Pg#MdG_U{c$2TT65BkP-F7$E{eoT}@_*vv^WL>(hCA8$2s)@qGHjLod%eB;W0!oZI*| z@2T*syW`tSJAazpj_Vaq%@u_)-#zHOcyDEqMJHyiyXCR<$G(Z4{Ger!??BHUyJmI@ zsT&$Qf6?kE$8UMRl%2XzU=f-ezxjja7gcf4?4G5aF5Vf=o$6)tY4w84A9iUU_wY`a zhy3e$BYC{i$@+AD>FZS;pS4-nTywRn?Sr2xdnyOYE00?>u4CE>j*#m8Kv^9cyCMr5nP@I@YrtW}>dj~@iibwd zROFiCUQ5=%Kk)DXaM%;kjwBa@!^+mzB`u~mz{T+vPSFZ~toha`hc%EI4vw@lKEywg zYa6N*w@^au>X3a(H|#8=(*)x+F^t#RoOR%S9x6pC>S)I5ioO2;j%+az=g)#yd#L0| z_B=-&C!b-@*Q?_cr?Jjx~kvj z^HM2(Kpj~xj$dxyfUoz8Q;dR+k3(gZ+^>;}Rda14l_CtQl+4FOxJH;}f$PFsxJ0v` zxSzL59_++(yyFzbPKI$XUSl1hs4{YOcn#td5!zVA)Le^n6|X@0mRBR~&i#B;rpsJl z4bQiaR{TmibY#MV?IYxkT=@f^IK?<@A}SQhc#U%e+sCy{RB{tHzP?GEX_Onh#UI;6 zE5;y4u_Der;$GWSrKsy}u*eV(YH&f2z{>H6P>ca*n6Vn~NNX^`)Gb^^?y`cr;KY`S zdZ-{D;z=5Dy3H4HYHhCg2~QOrsFcR0$iqWWZ*UkXBH=r5G@FPe#|VXmr=h(}>{AWS z5HpA+HjDfDs}#pkMpmJ!4S-54=xNRpOnd>ZE6IrK<{G$mVja9-8ixn0-r~Ys=*|6`$0;tOfVx3&HH}a> zHI~UbfN$Yj{bY3OzlHm|_p#vw|R(MF$Io683@ z;r;<}%5_Z)>S&xYKBS3ZL=R9Z+J{2;B+4+N5Inb0lp8!g3LNgb;9!<~M^o+}7+0?s zo}|P@Oxl9%nu}|o425DyqtJy1JBixl=6?J^V4P`zpG?-1KMstx`3|{wD8xQVKRBdC zWUpZUe0>lk{ShpDlWnwOJ#wT_T%O81;K(ClyN~L7G~*9~<7jb&s1$z9rMQH@mBmI5 zePDD_JpF*uHc-R(Hm3+>ix!5+{0F6qp(v##h*)kKVY(VzJekh!@QP5C!VS0Nc+?`! zoFWvN;K)cbl2tATCoUiK+2o^<0YQ9y%Q$&@5P#4zjveBDVJbxc)&Q*uQ@+h5LQw*a ztTHE^>?E%aQ<=uWgl^(w&qa>r36qT;pMo>o4k&B_LJb@u5^G=#IMO5DkrZdak;@Eg z(z>Oz^U@BV4vxl%Jr(O}-bapB%XeHGsZw}^8RVfEYghx0#;Fh^dj&W{KQ&l~FTf?D z4r>6qB60g8Nm%P2A)g)2A4J6|&KnD{(L-c-gh2$uO^GxIL!O{8k5D`^a-u&KzKAmN zwW(;saB$QQJP##%z>yymdPFxM)*` zs#G!8;bU&e$K3soxiExwz*+&_WRoCK8# z_QkehV=K(3A=l$$ZmF1i92aAPOp++(_nDL{_?WAda*98YBd?n9ZPpQ{?ch>8gW!Q- zP9o1qj8j~o0?`-2%_CV7e~^e(iS4B$f1DU?x*xezF=v4YFyu5JbE`k*YLHWlaxrab z!1--rSX;injSA@lr0uwWTS{}pbiJ59K$^_`+o?=27j4DHr#|Lv+e>A=#N4K&7!zcY zM6tUcbN*_ntng!Qhm^DV6FG#Uo*@(n^`%YUCNRaY(MdHvh8kamH7c+?^yUyZ1(Z?~ z#ah%*$eM zgq)gka?egYr^8%~TwEqZXhn&=BX~r^<3Z_)7t{ZkGM?0N0N>a#lK;~2K9g1M?-apw zbwacdx4sP4ltGvkSt3x77!)DL7-HWX)G5h z-`};VjtaEK+8kpoQ8Fvf$P=Y*hJuo|VW3nsoDw6Y@=-?q-=QXuA4d~L9g!78Cm8AH zMn$!01Jo}vmjBmLOc-7NbqfD?ePr`uqv5qF4Y-^}?ubmKQQ-eI4f{`Z$dx@DdyxIR zU^ZD^Wi+2C?Pv##{Qo`Wi#w$M&lV+aRpj8>TN7B3|DP=iA07~3(t)i*ol>2?#o`-t!kk|<-6P! zX7Sa7uKYE#b;gS~Ci44(hEKYAO8eURo2*4n@5?V|d!2W9G=IvpngzSRxxI1E)1p>W z_S+S+=G$kcP7Aj8F~1SJ{QSVmYePpeerAgrKPsHJ!s?RD_}5oPAAVogE~wL#SM%N_ ztQ+YfZ?>t6!fsBs=adsBD+c5yem45#oF9j)w@&I^a^Th(wdP5E@wHcB1rOxoZ$5q>bTVh}o*cWf3)Q)H?KKVG-kh^= zbGLqhP0kFclRV*JyiVBkZdLbFUxXumne4sQd(b3aF$_K%4i64jOTO z0paSHMjhtK_j`)vOnvJ{Hk1PRSpG>%*hQ zY509`OUJ2MKVA)P;dmua9j|5s_@eQM2_51FTpCZ-!Mi%8u2tipeRcHNv!-v9C3tKp zzPHzHN6~Y~5Q`>tcPyR!YgO>{b88E z&g5E-$)J^Pyi9UOPmj9(`2Ep}hmBhj4f<_;nfq6*_)@)-&UbKmpU(N6OGb?uz53?#Ne(7$ zI?VWMUbSDJy&K9!%+k4}Z#;V>N&(S>Yf3%i$ znUZOsCdrwDj`!Shw$lUWpj_uL9&WYRKI22tv~|1uFE$wSba%q0tBT&$t+So|ZOyA! z-FLej@nK1IC;7`}G3&I&7MGvzXv|Y5IC13!HOu0?CSd+2V*bHtxnd&bA6))Kb!u+y zE-i-J*(WK=b{!o0t7hrQ4c(?$n7$1kSbt-??3&S=qFKA`{U2DLfAu6~lJCyjo(r@u zUe=v*=FkTreoXoFHP6QuYIwiTopcj3&IauDPM$w$aPN0fzmGqZmaw5{O7-($*SD<+ zy_URP^(5DQQACI4O+tYa3U!+idf- z<-?vAe&0fE&SL+nK7RaE`dOByU$px7MkfwgS}tn%!}FD6oj;rMdE%?X<4dc(8g;zi zSGVK!0Q<|w)cHTAaOET?e&%y^YGG})ue$#};Y!mLQ`dj}d;Roh-cx-8$9Z{{Kk;Ra z9<->=s_$%5D(f}*%)9N@RSAB*_IjRu`L$EK$-S=}Iymjd+^R7{Z}a`o>N82rhVUVi zus$X$`6Y10+-ow{#}p->JXxJOtagu!%MR8lb07Xo;j)C|CJDaFmw&VC*`FQnzmB>+ z`&UoL0!w|fK?#Z9f7ZQ^Z}Fv8&tA-KzVJ|D&iF!}G2i*cEvwuherAdjpEX6zMsU9= zSZ7m}Dey9T4Lzt*V!IJ`7x;mXT#vBmFVruBLK)9v2Mg%>9{U0u5U zLi7Dz`yaiWF{!6(mo=^T&)(_x(7IVIpO50xr((HIQ|fF}myH?m^}18_LUR&K7k{?! zo7=zjc&=664|nok*~53-3+JwW ziOn`&=`cT~|BB?H=X)RR^}TBQ%nP@^@6E4GbK*(U)NC9tn}+RUx{|+~rcO2fv=O^9 z8FQiGp}k3~ZuURWY}@kp%{Co8n6t?|!|uC)=S$X@-x_2mJMGcVCGT!|VdtzCM;$iA zjkF86`n09R>C>ZrUUx)jx0}a);gquPy7p}^pWn{U_dRu?;q_4wG56B?YBxRm>`ld( zt{0NLo=r4sWAfYF%R2)X?D(_yz(a@Y42{?QfM|s?N-aZP=!HH*&M>PA#MTeyfS<=1e^>^MC5%$0Fr8Atk=?pcS%sbD(u0K=Bcg|3!POaU?{m!~Q zy9%w;b|Zhk^YH1gd)(4eKefxdkv~@yZz(RhwDLrUevuD;)ldE5r#`Qrj~aG6=G^oL zo~+OOt34l@5AqnHeb>Wtcbd@<0~MCq8*SDby{ zcCYqc;-l<(caKdy)9`>}cHavd_9-qM+jnb8L|CiRw3p5UG&8>Mw=#U%S#4yGCy}0O zdh&jyPTajzojR+w)}G4`e=|5H_};#0VfU*ypKq4ux^S*tN8!vbHjUfd%skq6*0JMf zeJ6S?4De{5_)F}uznV7LlILbVW>v*B?+N{H953R^*-k0%k3^I_o*W%^+s{0C&n)Yo z_CM97m##WB()-l0Qx!?C7Td4gb+Ti}Gj1I{V#igf>fT)L=dr$M*HO0)OZ!Ikzd0?t z)DO51EZcKL?9`wmOy9HvGt}o`1aA95QdY?nRx%tadx{RoX0< zx6ei-|F}PA638_p^t$e)-Gh;?EP0wO%%uyO%lf z$#c|fK0iMPH`g*edzGnEh1z}0STefWrl$VO)Y}O+l-D|LO}y!JT`RZNkDKp0NadVwgZuaaq%zUQ#vw)Ke zx4N}F{pXO|gC`ffYWSPJ!4DQ=&5};Ld(_L^6|GzH;oG%CK0o|b=`qcb_S+|aR{eHQ zX+ZZwp)YGWXAuvci_L>8`TV(RwuIjVcOP65SEnwmZTRkfbD}a{EzNs$YVgdp-<3`O zI{oF9V#l&yr_P(2?a^U+@TB7{Z#6F8_QRvymrSpn82ngPT#!5Y#F^IRxy6-!ZAa{@ zoHfsr@t0i9|Co=5hk0szqgy#24~+|y+;o8&UspRXz)}#f6u_h#W@F8%=!TBs!vu%9HV$AgtrS7b0 zuRXIC3|Z*WDS6}awWZfvE5|tOOJtFY*3GG@llQclHm33RkS5JL?HJ*1)_BR-7<+w0 za@B_8hf~^X+H5PFccYfaDr7%wf(K8{73fJ|Qjb=l+hqe=Hs3{^D$xwzDUBJ_+LP<%pRjYPOS~UxJt^ zN6eI~Srwm9jvK{NCBF-9HxFK_VSD&=qeAaQGpbH;`OD59p}A}p5WV%p5%&E8g`1OAwA7^ zBR#`yR%_TLmyD@d>K;B^{yl}|_dGrx)S7amoiVb^#W((Ak$=?$K+Uc-Lni;&*rHArvq zsr0H> zx=g;D-*Z~$P0@pwpTF{>>5n}Y_*{1fCd;N5m+>o0aj-J~wxKG9xJ#Rc4lJQ+X z-5-eubC(n>`*zd(`w;_H{@irqw_Lf^NoTn^^T65(TZVq`lh*61WzflOi=JyU%5@&| zJGZ>yD15sv{Yu%U2HszP@ooE*id#E(tlw$vmh+Wu+qD^0eZ9Ol>uWzQ(feoVGWqg| zYQn&-G3)ATj^61|{o81h^Nmg&eK50$t~{>EIgjZ2(O0hK56^dZo|pT_x6MYon%ESz z5V}2llGyP@o`rSM{yB5_{;f{&Thz(d`0C&rL$*J@l=NneL&Ng#lXNqC*i_2QR|kIe zSBM8odholI@`=g81qkxS!oc)Omwn5XV_O{lE~cZ6xmBgZwznpH>yDZDwrOG^{S{@H zWo5%%>2;`#|FzrPv>DzATJW+Rv#F%Ad{56hJjmLf7^U>*ZpprQtzB8Rqb}o~2TaVJ zS{VL@im&*_-c$=lf#$3D#RHzsIrs=@fzJu_TbTYvjXbgkW!6#$%69k;K@wd+NvDR1 zmY5%&$Eqrq9(I+RR^elnWu@0H4>{E+(zS*8^lW~+(&pIoAcWMC*QvT6QGkU^e?KH% z5>Nfw8q0nHB^i2IY-cRHY%HS}!qUsgE5h$7f@10?;+{cDqX(<)Ib3^@v=YcbS}t|8Mgtdq3;7809|(gGP@q&3D9*9AUP%A z1<>^yKyozXov5T)DY*8_mE_>&dcY5-Q~WDkvnHlWi1GT@Q1jQq6#AOmQL zQDgE~KY$GQ9iTFMfZiZeXB6%9j@$u|UgVpijs{8PM*zCaQO4-2B>9Gx3pG%Ph2r0K z$qI~R7REAX)E61cERAK>Z%~LU{=H0a`J6T3i~j7Y+lR{Cz#iZmfL;dg2lfJA12nti z(dZ0t3K#=^EHDZf4bWE&4bT$^18C;y(~S*a3)lhnKm))Lpa`Rgq6k97@Z2}mR=SO%;D zHUP_kjlgPP1<()Z4fFwe0sVo#z+l)__|`qyA9?y&L7$RZ0u2HB9OVYk=c>8@%?wQh zIhnq3{Q=wsC`4(-DH0O+`M065pCQ)pE1Y832&_eG92LJmd;FI0YJ-R06^umEQr>|43y0SW-|OX;>b(|<^!_;`qoqmOam4G3xU~y z0L%d<0n>ppU@|Zl_yU*$&@!TBL(AklbUFfb7(gG)ifAfv<(Y!PWf3zhG(>3pIdk`27`e|J80Ll6Rw0m_1q`s-1`fduO&hN!slWBp_J)jeSkozb}R+9Iq1@$gz zCrTEH)__tky@9Ut_cKQwN%u6CQXky_YT*xPfF3}1pcg>(eE}LLd7QkQ29PBbpZx)f zRkCUzKruQ77zqpm@_<|*2halOM<>fhW)MKispBkQFpz2FDNp5uLV%P|z68iO=7)k7 z0aRaLEE@t^4A3GR4p67mPU?r~X!I{yMirxsm1LUF+_!6KtG-F=@Yk~DZ z1+W;}FD&H>*G=j*Vp zHa{Rs{-UOjfQLeu3DYQkNA?L2FRV0SO)XX!w<5Dp;Rh4eqz-DTUYoE$Q=!y?xd`!; zlptZ|LLUp}>?9pWlK!k)&iaQ0L<9s0Us>3Gv{)!fl>e|9qYH1sgx0|bn6Mk1sr*+6zh z*ra5k>^I@2k`=PggwFNBbrl@#SSlMRT&T}>vU1^&HM92&A(N%UQL$O)292GX(-?+@ z1P9=sY=^Ml3N}cmsqS3sd`$b;y*~+v^|HG{4FuQ|!O|LX(y6MAg~2=We$QBD93lL5 zQ&5qBbSk9#g-4A?7h3m%0Opt+YE<;mEEGwnuQ~)C{?hs65qk(5=S7rqW@4KL4IwHW z&`KZDI5ytWDpE9143Ip*%7%ry{;e*A23D%j4+2alD1${(X2a}FLSU0nqhPK=kR5Bu zjtWm4FfFBy2$_MltQ<~!XDdb>T)Ko636*xN+U}U6c!Sg1y58RZd)AlEa<*I8VvqVO zg4%(tGH3~PlMc{*JMH4x-Y?EUY&?Zd2%b-zgt!K5q^Y+P?vg^V7jqXbH$ZQ-x@R+l z3P;vVJ|971&pd_WwlK-siDk2&g;7qJ-WuT;h?{i6Ywh&MnN8As+kWz0q>B*b%$!`M zGhwcc>MZZPqUBvk&{Ba%@`Vg%){Olr%ywqcSf8hy;g})92WRFS_AiV_bW7(0lh3&+ z`i}W=ym462mnNjTFlRUEVByf#r}VPo{$tP~jT-_O_e2+#Yzi0nH5AUdFo&E7Y$OfE z-wk@{+yog2@qpl9>3o;Rk_+F?9bkLiP!kRpN=L}voYMzItRGm08Z@9lkPew0nX=LH zo~_4xu_h`Yyrt05mASG~A=i}!m_^c_A_&V}u_H;x+1Twz^7dP;u;=s-qj?g}xiWjx zqp;3a@K7+P&S5ln(jm8mWlgqRx_i&Z&@+urItFKz{a5`X-?vFb4UHRnl5|k+Z2vXs zSqHY&7;A!s6>iK;9_bo zHw>o&8W5oR?z`Wt-&lXWUepi~5G*`xfY6S1XYMJ|0lT}G{c>-_EU<%!VH=SB>+YpP zdfm6`A76R&)lg%bmZDnP+I+l)Qg_6g@syr^c=g#irF`3cqaYkqAy_qpfzoL`>D-L8 z(FxzUvvA=DS7yt85^5SUFEJlo>Vw}I7>{&_PdZKmy-^e;;j+IE6B=?&1J*!z;?7K+ zrK5n-p&ZdFvBr5*83Hv-K4Ydb0)%!#|!n zY~8VY$JAN;8%ZWe7T_!BJ(-g{)>l~U$#$?)LPsxbhxY`n7xo_Mm}CRHdnvxt+8r{q zqgXWPwin~l!&i9Z#hm_yB_wU;FL*Y>J&G2#bdvJ^x-YDL{L!okI*s>&LH4dX>^^`?u)7kV&+ymP02rK+XuU;F9rYr+Dej2?878+_v= z?;B9{!kf72$$7X_e*VFbaE;cw4k4v)m!T<<_TLy|h z#Pp3iIlg%Jjl4ezh&yGFv$5tG{*Kpk>g|K}j2=|!Y8ohP_F+!pVUVzb^8KfGwlQDS zrq3sdMATTLW_Y*eraosUmm0K2!aLmpg}>0&Z7?M4AkoCmeCRwty6EB)js!zWwV>q z6gv>EJHj>yu)l;;AaaKw;a(HwFSidCHY*XvzbOU1Id+8BP1#U4=|t;67ay~|0|x$T zoM3G6CfNF$V*JwC*vZy?^YSLKa!6pCq{k)c)UC6vZC*ETtBaq4!#6}|=!;!YI)~e7 zeBQoawpDI~#K#Aq&c4`)m-*s`o`Xau9o3C@xUsO+0rPPX#Wq2ab_jz~Vw@J$8h6!- znQz2y#2V@Nu5@DXQyb|ZZ?V~&aTyC+jg&J}+&u6m8(Go&GU zl1}^fI`F$``Sr)XMs>JH-V>tza8H*``z~8Q_hAEvA0|TpvrYFyUAR!>hv}5g`@YL# zTZBYvjxlC3K6rE9{4I*S28mgB{fC$l+yHD@^4q z1SJ$3WkL-E!n9z?55X2S5B=NN`*_scSiP4tx(gFe)Hg_-b(1- zjD@fhLK#%ZeWQhq%@94(G3Yyw_P8AMe0LrVf&yT$O!h{&L48TbjelEE@@%E*)m{^Z z!9)gx1j(cW$%pQit+R7%i=SdrO;C&w&>Ugi8ZRnnX$G}kJfO$_8U)V>-}wgL)nbm_>C#q@JtA90Uw#g3MnmMigd*L_$$4~ z*wx+nC&7SNK@W*==}>r=xO2_i+-=r=l8}y#D;*Q7mu((?>{Cr)tZ z64&mIS=Z7m|K6vXdNIPX0QCR2(KwH(IE~J@L+uU3$`hx{zOGnvgq{?zYhu|ixB+WzgFiEX9-3}8bWZNH(arsbd7PL363qOI%S z&Y9Tux^N(fH890?l9M7_4Pqg}R%hno+B8*sXQ{vYXK3yn?>bl`!2wb9C@+f@`UGRo zk`Aj|Jr@>u#C^ZwlR%Cz8vN{Tth<+%%EPKh;zU z*U+@FbYi~y?D&bB+u!p3B+x08iMP2qp@K^Yix&oluppO4*v04>U{Yk*X*RO{`-4WI zW|OMchp=E%x1yniC50J!QCLurnNgxGEND?&GE`fTCA^Mc!-Vi?)uBaD z_{TC!VL}pqTz`mV3Sv762V>c6;Wo}$38Q0KlF%`Z#ZhftVRa01vrN|(1R6eM1_(DZ z@Uu8JhPAAk701RgVMq*XE?C4fwLCaT*cOSO2l4UDR5;jTYZ0O8Z2rQO)R^@hKU0I{>uz-@R(eWd)(@I8UwJ0bYlo>ckTU=CF zoR*%KSzMBqkt?KiW^Tf-U6~sx3SQ8S71fCd2op-WLDQBlOzHDa4FX&Ivx*kD%?nJ& zysGTGv-PYleu7Z1Lb!%`DKmx^78m1x$>B$`Y zgAIn_znv+{9+KCh1pj+aabSMt(5%eiX?epkTNDm$fzZguvxH%me(cG53afkK_gApc z8RM;`FQAwB(u%wwZ0f}nRfWCqx&$6S)E^%It~b_uXw|R1StP3y9?-JNwJ-BvEL4c@ z2NBU3i~2Lms`LHuo`FRQ$^mSHX{b1!LXtSFWsRyX55T)HXn8)6O_#%6A%ZRg?>R!N z&SbDkhF^vgGMSx_kOR*K3})Med6{fc)tkXgZ^BwGh($P*=Q3O2RunAkG?1BB{g})0 zZE31Kg^cm|vZnKFQ!Jnj|=X&b)>A&)LHN E1!V;!K>z>% delta 18219 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 Mog+K*Lwo1{FCf{g8vp [unique().on(table.userId, table.organizationId)] ); -/** - * Relations for the users to organizations join table. - */ -export const usersToOrganizationsRelations = relations( - usersToOrganizations, - ({ one }) => ({ - user: one(users, { - fields: [usersToOrganizations.userId], - references: [users.id], - }), - organization: one(organizations, { - fields: [usersToOrganizations.organizationId], - references: [organizations.id], - }), - }) -); - /** * Type helpers related to the users to organizations join table. */