a tool for shared writing and social publishing
at main 399 lines 15 kB view raw
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}));