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