a tool for shared writing and social publishing
1import { relations } from "drizzle-orm/relations";
2import { identities, notifications, publications, documents, comments_on_documents, bsky_profiles, entity_sets, entities, facts, email_auth_tokens, recommends_on_documents, poll_votes_on_entity, permission_tokens, user_subscriptions, phone_rsvps_to_entity, site_standard_publications, custom_domains, custom_domain_routes, site_standard_documents, email_subscriptions_to_entity, atp_poll_records, atp_poll_votes, bsky_follows, subscribers_to_publications, site_standard_documents_in_publications, documents_in_publications, document_mentions_in_bsky, bsky_posts, permission_token_on_homepage, publication_domains, publication_subscriptions, site_standard_subscriptions, user_entitlements, permission_token_rights, leaflets_to_documents, leaflets_in_publications } from "./schema";
3
4export const notificationsRelations = relations(notifications, ({one}) => ({
5 identity: one(identities, {
6 fields: [notifications.recipient],
7 references: [identities.atp_did]
8 }),
9}));
10
11export const identitiesRelations = relations(identities, ({one, many}) => ({
12 notifications: many(notifications),
13 publications: many(publications),
14 email_auth_tokens: many(email_auth_tokens),
15 recommends_on_documents: many(recommends_on_documents),
16 bsky_profiles: many(bsky_profiles),
17 user_subscriptions: many(user_subscriptions),
18 permission_token: one(permission_tokens, {
19 fields: [identities.home_page],
20 references: [permission_tokens.id]
21 }),
22 site_standard_publications: many(site_standard_publications),
23 site_standard_documents: many(site_standard_documents),
24 custom_domains_identity: many(custom_domains, {
25 relationName: "custom_domains_identity_identities_email"
26 }),
27 custom_domains_identity_id: many(custom_domains, {
28 relationName: "custom_domains_identity_id_identities_id"
29 }),
30 bsky_follows_follows: many(bsky_follows, {
31 relationName: "bsky_follows_follows_identities_atp_did"
32 }),
33 bsky_follows_identity: many(bsky_follows, {
34 relationName: "bsky_follows_identity_identities_atp_did"
35 }),
36 subscribers_to_publications: many(subscribers_to_publications),
37 permission_token_on_homepages: many(permission_token_on_homepage),
38 publication_domains: many(publication_domains),
39 publication_subscriptions: many(publication_subscriptions),
40 site_standard_subscriptions: many(site_standard_subscriptions),
41 user_entitlements: many(user_entitlements),
42}));
43
44export const publicationsRelations = relations(publications, ({one, many}) => ({
45 identity: one(identities, {
46 fields: [publications.identity_did],
47 references: [identities.atp_did]
48 }),
49 subscribers_to_publications: many(subscribers_to_publications),
50 documents_in_publications: many(documents_in_publications),
51 publication_domains: many(publication_domains),
52 publication_subscriptions: many(publication_subscriptions),
53 leaflets_in_publications: many(leaflets_in_publications),
54}));
55
56export const comments_on_documentsRelations = relations(comments_on_documents, ({one}) => ({
57 document: one(documents, {
58 fields: [comments_on_documents.document],
59 references: [documents.uri]
60 }),
61 bsky_profile: one(bsky_profiles, {
62 fields: [comments_on_documents.profile],
63 references: [bsky_profiles.did]
64 }),
65}));
66
67export const documentsRelations = relations(documents, ({many}) => ({
68 comments_on_documents: many(comments_on_documents),
69 recommends_on_documents: many(recommends_on_documents),
70 documents_in_publications: many(documents_in_publications),
71 document_mentions_in_bskies: many(document_mentions_in_bsky),
72 leaflets_to_documents: many(leaflets_to_documents),
73 leaflets_in_publications: many(leaflets_in_publications),
74}));
75
76export const bsky_profilesRelations = relations(bsky_profiles, ({one, many}) => ({
77 comments_on_documents: many(comments_on_documents),
78 identity: one(identities, {
79 fields: [bsky_profiles.did],
80 references: [identities.atp_did]
81 }),
82}));
83
84export const entitiesRelations = relations(entities, ({one, many}) => ({
85 entity_set: one(entity_sets, {
86 fields: [entities.set],
87 references: [entity_sets.id]
88 }),
89 facts: many(facts),
90 poll_votes_on_entities_option_entity: many(poll_votes_on_entity, {
91 relationName: "poll_votes_on_entity_option_entity_entities_id"
92 }),
93 poll_votes_on_entities_poll_entity: many(poll_votes_on_entity, {
94 relationName: "poll_votes_on_entity_poll_entity_entities_id"
95 }),
96 permission_tokens: many(permission_tokens),
97 phone_rsvps_to_entities: many(phone_rsvps_to_entity),
98 email_subscriptions_to_entities: many(email_subscriptions_to_entity),
99}));
100
101export const entity_setsRelations = relations(entity_sets, ({many}) => ({
102 entities: many(entities),
103 permission_token_rights: many(permission_token_rights),
104}));
105
106export const factsRelations = relations(facts, ({one}) => ({
107 entity: one(entities, {
108 fields: [facts.entity],
109 references: [entities.id]
110 }),
111}));
112
113export const email_auth_tokensRelations = relations(email_auth_tokens, ({one}) => ({
114 identity: one(identities, {
115 fields: [email_auth_tokens.identity],
116 references: [identities.id]
117 }),
118}));
119
120export const recommends_on_documentsRelations = relations(recommends_on_documents, ({one}) => ({
121 document: one(documents, {
122 fields: [recommends_on_documents.document],
123 references: [documents.uri]
124 }),
125 identity: one(identities, {
126 fields: [recommends_on_documents.recommender_did],
127 references: [identities.atp_did]
128 }),
129}));
130
131export const poll_votes_on_entityRelations = relations(poll_votes_on_entity, ({one}) => ({
132 entity_option_entity: one(entities, {
133 fields: [poll_votes_on_entity.option_entity],
134 references: [entities.id],
135 relationName: "poll_votes_on_entity_option_entity_entities_id"
136 }),
137 entity_poll_entity: one(entities, {
138 fields: [poll_votes_on_entity.poll_entity],
139 references: [entities.id],
140 relationName: "poll_votes_on_entity_poll_entity_entities_id"
141 }),
142}));
143
144export const permission_tokensRelations = relations(permission_tokens, ({one, many}) => ({
145 entity: one(entities, {
146 fields: [permission_tokens.root_entity],
147 references: [entities.id]
148 }),
149 identities: many(identities),
150 custom_domain_routes_edit_permission_token: many(custom_domain_routes, {
151 relationName: "custom_domain_routes_edit_permission_token_permission_tokens_id"
152 }),
153 custom_domain_routes_view_permission_token: many(custom_domain_routes, {
154 relationName: "custom_domain_routes_view_permission_token_permission_tokens_id"
155 }),
156 email_subscriptions_to_entities: many(email_subscriptions_to_entity),
157 permission_token_on_homepages: many(permission_token_on_homepage),
158 permission_token_rights: many(permission_token_rights),
159 leaflets_to_documents: many(leaflets_to_documents),
160 leaflets_in_publications: many(leaflets_in_publications),
161}));
162
163export const user_subscriptionsRelations = relations(user_subscriptions, ({one}) => ({
164 identity: one(identities, {
165 fields: [user_subscriptions.identity_id],
166 references: [identities.id]
167 }),
168}));
169
170export const phone_rsvps_to_entityRelations = relations(phone_rsvps_to_entity, ({one}) => ({
171 entity: one(entities, {
172 fields: [phone_rsvps_to_entity.entity],
173 references: [entities.id]
174 }),
175}));
176
177export const site_standard_publicationsRelations = relations(site_standard_publications, ({one, many}) => ({
178 identity: one(identities, {
179 fields: [site_standard_publications.identity_did],
180 references: [identities.atp_did]
181 }),
182 site_standard_documents_in_publications: many(site_standard_documents_in_publications),
183 site_standard_subscriptions: many(site_standard_subscriptions),
184}));
185
186export const custom_domain_routesRelations = relations(custom_domain_routes, ({one}) => ({
187 custom_domain: one(custom_domains, {
188 fields: [custom_domain_routes.domain],
189 references: [custom_domains.domain]
190 }),
191 permission_token_edit_permission_token: one(permission_tokens, {
192 fields: [custom_domain_routes.edit_permission_token],
193 references: [permission_tokens.id],
194 relationName: "custom_domain_routes_edit_permission_token_permission_tokens_id"
195 }),
196 permission_token_view_permission_token: one(permission_tokens, {
197 fields: [custom_domain_routes.view_permission_token],
198 references: [permission_tokens.id],
199 relationName: "custom_domain_routes_view_permission_token_permission_tokens_id"
200 }),
201}));
202
203export const custom_domainsRelations = relations(custom_domains, ({one, many}) => ({
204 custom_domain_routes: many(custom_domain_routes),
205 identity_identity: one(identities, {
206 fields: [custom_domains.identity],
207 references: [identities.email],
208 relationName: "custom_domains_identity_identities_email"
209 }),
210 identity_identity_id: one(identities, {
211 fields: [custom_domains.identity_id],
212 references: [identities.id],
213 relationName: "custom_domains_identity_id_identities_id"
214 }),
215 publication_domains: many(publication_domains),
216}));
217
218export const site_standard_documentsRelations = relations(site_standard_documents, ({one, many}) => ({
219 identity: one(identities, {
220 fields: [site_standard_documents.identity_did],
221 references: [identities.atp_did]
222 }),
223 site_standard_documents_in_publications: many(site_standard_documents_in_publications),
224}));
225
226export const email_subscriptions_to_entityRelations = relations(email_subscriptions_to_entity, ({one}) => ({
227 entity: one(entities, {
228 fields: [email_subscriptions_to_entity.entity],
229 references: [entities.id]
230 }),
231 permission_token: one(permission_tokens, {
232 fields: [email_subscriptions_to_entity.token],
233 references: [permission_tokens.id]
234 }),
235}));
236
237export const atp_poll_votesRelations = relations(atp_poll_votes, ({one}) => ({
238 atp_poll_record: one(atp_poll_records, {
239 fields: [atp_poll_votes.poll_uri],
240 references: [atp_poll_records.uri]
241 }),
242}));
243
244export const atp_poll_recordsRelations = relations(atp_poll_records, ({many}) => ({
245 atp_poll_votes: many(atp_poll_votes),
246}));
247
248export const bsky_followsRelations = relations(bsky_follows, ({one}) => ({
249 identity_follows: one(identities, {
250 fields: [bsky_follows.follows],
251 references: [identities.atp_did],
252 relationName: "bsky_follows_follows_identities_atp_did"
253 }),
254 identity_identity: one(identities, {
255 fields: [bsky_follows.identity],
256 references: [identities.atp_did],
257 relationName: "bsky_follows_identity_identities_atp_did"
258 }),
259}));
260
261export const subscribers_to_publicationsRelations = relations(subscribers_to_publications, ({one}) => ({
262 identity: one(identities, {
263 fields: [subscribers_to_publications.identity],
264 references: [identities.email]
265 }),
266 publication: one(publications, {
267 fields: [subscribers_to_publications.publication],
268 references: [publications.uri]
269 }),
270}));
271
272export const site_standard_documents_in_publicationsRelations = relations(site_standard_documents_in_publications, ({one}) => ({
273 site_standard_document: one(site_standard_documents, {
274 fields: [site_standard_documents_in_publications.document],
275 references: [site_standard_documents.uri]
276 }),
277 site_standard_publication: one(site_standard_publications, {
278 fields: [site_standard_documents_in_publications.publication],
279 references: [site_standard_publications.uri]
280 }),
281}));
282
283export const documents_in_publicationsRelations = relations(documents_in_publications, ({one}) => ({
284 document: one(documents, {
285 fields: [documents_in_publications.document],
286 references: [documents.uri]
287 }),
288 publication: one(publications, {
289 fields: [documents_in_publications.publication],
290 references: [publications.uri]
291 }),
292}));
293
294export const document_mentions_in_bskyRelations = relations(document_mentions_in_bsky, ({one}) => ({
295 document: one(documents, {
296 fields: [document_mentions_in_bsky.document],
297 references: [documents.uri]
298 }),
299 bsky_post: one(bsky_posts, {
300 fields: [document_mentions_in_bsky.uri],
301 references: [bsky_posts.uri]
302 }),
303}));
304
305export const bsky_postsRelations = relations(bsky_posts, ({many}) => ({
306 document_mentions_in_bskies: many(document_mentions_in_bsky),
307}));
308
309export const permission_token_on_homepageRelations = relations(permission_token_on_homepage, ({one}) => ({
310 identity: one(identities, {
311 fields: [permission_token_on_homepage.identity],
312 references: [identities.id]
313 }),
314 permission_token: one(permission_tokens, {
315 fields: [permission_token_on_homepage.token],
316 references: [permission_tokens.id]
317 }),
318}));
319
320export const publication_domainsRelations = relations(publication_domains, ({one}) => ({
321 custom_domain: one(custom_domains, {
322 fields: [publication_domains.domain],
323 references: [custom_domains.domain]
324 }),
325 identity: one(identities, {
326 fields: [publication_domains.identity],
327 references: [identities.atp_did]
328 }),
329 publication: one(publications, {
330 fields: [publication_domains.publication],
331 references: [publications.uri]
332 }),
333}));
334
335export const publication_subscriptionsRelations = relations(publication_subscriptions, ({one}) => ({
336 identity: one(identities, {
337 fields: [publication_subscriptions.identity],
338 references: [identities.atp_did]
339 }),
340 publication: one(publications, {
341 fields: [publication_subscriptions.publication],
342 references: [publications.uri]
343 }),
344}));
345
346export const site_standard_subscriptionsRelations = relations(site_standard_subscriptions, ({one}) => ({
347 identity: one(identities, {
348 fields: [site_standard_subscriptions.identity],
349 references: [identities.atp_did]
350 }),
351 site_standard_publication: one(site_standard_publications, {
352 fields: [site_standard_subscriptions.publication],
353 references: [site_standard_publications.uri]
354 }),
355}));
356
357export const user_entitlementsRelations = relations(user_entitlements, ({one}) => ({
358 identity: one(identities, {
359 fields: [user_entitlements.identity_id],
360 references: [identities.id]
361 }),
362}));
363
364export const permission_token_rightsRelations = relations(permission_token_rights, ({one}) => ({
365 entity_set: one(entity_sets, {
366 fields: [permission_token_rights.entity_set],
367 references: [entity_sets.id]
368 }),
369 permission_token: one(permission_tokens, {
370 fields: [permission_token_rights.token],
371 references: [permission_tokens.id]
372 }),
373}));
374
375export const leaflets_to_documentsRelations = relations(leaflets_to_documents, ({one}) => ({
376 document: one(documents, {
377 fields: [leaflets_to_documents.document],
378 references: [documents.uri]
379 }),
380 permission_token: one(permission_tokens, {
381 fields: [leaflets_to_documents.leaflet],
382 references: [permission_tokens.id]
383 }),
384}));
385
386export const leaflets_in_publicationsRelations = relations(leaflets_in_publications, ({one}) => ({
387 document: one(documents, {
388 fields: [leaflets_in_publications.doc],
389 references: [documents.uri]
390 }),
391 permission_token: one(permission_tokens, {
392 fields: [leaflets_in_publications.leaflet],
393 references: [permission_tokens.id]
394 }),
395 publication: one(publications, {
396 fields: [leaflets_in_publications.publication],
397 references: [publications.uri]
398 }),
399}));