a tool for shared writing and social publishing
1import { relations } from "drizzle-orm/relations"; 2import { identities, publications, documents, comments_on_documents, bsky_profiles, entity_sets, entities, facts, email_auth_tokens, poll_votes_on_entity, permission_tokens, phone_rsvps_to_entity, custom_domains, custom_domain_routes, email_subscriptions_to_entity, atp_poll_records, atp_poll_votes, bsky_follows, subscribers_to_publications, permission_token_on_homepage, documents_in_publications, document_mentions_in_bsky, bsky_posts, publication_domains, leaflets_in_publications, publication_subscriptions, permission_token_rights } from "./schema"; 3 4export const publicationsRelations = relations(publications, ({one, many}) => ({ 5 identity: one(identities, { 6 fields: [publications.identity_did], 7 references: [identities.atp_did] 8 }), 9 subscribers_to_publications: many(subscribers_to_publications), 10 documents_in_publications: many(documents_in_publications), 11 publication_domains: many(publication_domains), 12 leaflets_in_publications: many(leaflets_in_publications), 13 publication_subscriptions: many(publication_subscriptions), 14})); 15 16export const identitiesRelations = relations(identities, ({one, many}) => ({ 17 publications: many(publications), 18 email_auth_tokens: many(email_auth_tokens), 19 bsky_profiles: many(bsky_profiles), 20 permission_token: one(permission_tokens, { 21 fields: [identities.home_page], 22 references: [permission_tokens.id] 23 }), 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})); 41 42export const comments_on_documentsRelations = relations(comments_on_documents, ({one}) => ({ 43 document: one(documents, { 44 fields: [comments_on_documents.document], 45 references: [documents.uri] 46 }), 47 bsky_profile: one(bsky_profiles, { 48 fields: [comments_on_documents.profile], 49 references: [bsky_profiles.did] 50 }), 51})); 52 53export const documentsRelations = relations(documents, ({many}) => ({ 54 comments_on_documents: many(comments_on_documents), 55 documents_in_publications: many(documents_in_publications), 56 document_mentions_in_bskies: many(document_mentions_in_bsky), 57 leaflets_in_publications: many(leaflets_in_publications), 58})); 59 60export const bsky_profilesRelations = relations(bsky_profiles, ({one, many}) => ({ 61 comments_on_documents: many(comments_on_documents), 62 identity: one(identities, { 63 fields: [bsky_profiles.did], 64 references: [identities.atp_did] 65 }), 66})); 67 68export const entitiesRelations = relations(entities, ({one, many}) => ({ 69 entity_set: one(entity_sets, { 70 fields: [entities.set], 71 references: [entity_sets.id] 72 }), 73 facts: many(facts), 74 poll_votes_on_entities_option_entity: many(poll_votes_on_entity, { 75 relationName: "poll_votes_on_entity_option_entity_entities_id" 76 }), 77 poll_votes_on_entities_poll_entity: many(poll_votes_on_entity, { 78 relationName: "poll_votes_on_entity_poll_entity_entities_id" 79 }), 80 permission_tokens: many(permission_tokens), 81 phone_rsvps_to_entities: many(phone_rsvps_to_entity), 82 email_subscriptions_to_entities: many(email_subscriptions_to_entity), 83})); 84 85export const entity_setsRelations = relations(entity_sets, ({many}) => ({ 86 entities: many(entities), 87 permission_token_rights: many(permission_token_rights), 88})); 89 90export const factsRelations = relations(facts, ({one}) => ({ 91 entity: one(entities, { 92 fields: [facts.entity], 93 references: [entities.id] 94 }), 95})); 96 97export const email_auth_tokensRelations = relations(email_auth_tokens, ({one}) => ({ 98 identity: one(identities, { 99 fields: [email_auth_tokens.identity], 100 references: [identities.id] 101 }), 102})); 103 104export const poll_votes_on_entityRelations = relations(poll_votes_on_entity, ({one}) => ({ 105 entity_option_entity: one(entities, { 106 fields: [poll_votes_on_entity.option_entity], 107 references: [entities.id], 108 relationName: "poll_votes_on_entity_option_entity_entities_id" 109 }), 110 entity_poll_entity: one(entities, { 111 fields: [poll_votes_on_entity.poll_entity], 112 references: [entities.id], 113 relationName: "poll_votes_on_entity_poll_entity_entities_id" 114 }), 115})); 116 117export const permission_tokensRelations = relations(permission_tokens, ({one, many}) => ({ 118 entity: one(entities, { 119 fields: [permission_tokens.root_entity], 120 references: [entities.id] 121 }), 122 identities: many(identities), 123 custom_domain_routes_edit_permission_token: many(custom_domain_routes, { 124 relationName: "custom_domain_routes_edit_permission_token_permission_tokens_id" 125 }), 126 custom_domain_routes_view_permission_token: many(custom_domain_routes, { 127 relationName: "custom_domain_routes_view_permission_token_permission_tokens_id" 128 }), 129 email_subscriptions_to_entities: many(email_subscriptions_to_entity), 130 permission_token_on_homepages: many(permission_token_on_homepage), 131 leaflets_in_publications: many(leaflets_in_publications), 132 permission_token_rights: many(permission_token_rights), 133})); 134 135export const phone_rsvps_to_entityRelations = relations(phone_rsvps_to_entity, ({one}) => ({ 136 entity: one(entities, { 137 fields: [phone_rsvps_to_entity.entity], 138 references: [entities.id] 139 }), 140})); 141 142export const custom_domain_routesRelations = relations(custom_domain_routes, ({one}) => ({ 143 custom_domain: one(custom_domains, { 144 fields: [custom_domain_routes.domain], 145 references: [custom_domains.domain] 146 }), 147 permission_token_edit_permission_token: one(permission_tokens, { 148 fields: [custom_domain_routes.edit_permission_token], 149 references: [permission_tokens.id], 150 relationName: "custom_domain_routes_edit_permission_token_permission_tokens_id" 151 }), 152 permission_token_view_permission_token: one(permission_tokens, { 153 fields: [custom_domain_routes.view_permission_token], 154 references: [permission_tokens.id], 155 relationName: "custom_domain_routes_view_permission_token_permission_tokens_id" 156 }), 157})); 158 159export const custom_domainsRelations = relations(custom_domains, ({one, many}) => ({ 160 custom_domain_routes: many(custom_domain_routes), 161 identity_identity: one(identities, { 162 fields: [custom_domains.identity], 163 references: [identities.email], 164 relationName: "custom_domains_identity_identities_email" 165 }), 166 identity_identity_id: one(identities, { 167 fields: [custom_domains.identity_id], 168 references: [identities.id], 169 relationName: "custom_domains_identity_id_identities_id" 170 }), 171 publication_domains: many(publication_domains), 172})); 173 174export const email_subscriptions_to_entityRelations = relations(email_subscriptions_to_entity, ({one}) => ({ 175 entity: one(entities, { 176 fields: [email_subscriptions_to_entity.entity], 177 references: [entities.id] 178 }), 179 permission_token: one(permission_tokens, { 180 fields: [email_subscriptions_to_entity.token], 181 references: [permission_tokens.id] 182 }), 183})); 184 185export const atp_poll_votesRelations = relations(atp_poll_votes, ({one}) => ({ 186 atp_poll_record: one(atp_poll_records, { 187 fields: [atp_poll_votes.poll_uri], 188 references: [atp_poll_records.uri] 189 }), 190})); 191 192export const atp_poll_recordsRelations = relations(atp_poll_records, ({many}) => ({ 193 atp_poll_votes: many(atp_poll_votes), 194})); 195 196export const bsky_followsRelations = relations(bsky_follows, ({one}) => ({ 197 identity_follows: one(identities, { 198 fields: [bsky_follows.follows], 199 references: [identities.atp_did], 200 relationName: "bsky_follows_follows_identities_atp_did" 201 }), 202 identity_identity: one(identities, { 203 fields: [bsky_follows.identity], 204 references: [identities.atp_did], 205 relationName: "bsky_follows_identity_identities_atp_did" 206 }), 207})); 208 209export const subscribers_to_publicationsRelations = relations(subscribers_to_publications, ({one}) => ({ 210 identity: one(identities, { 211 fields: [subscribers_to_publications.identity], 212 references: [identities.email] 213 }), 214 publication: one(publications, { 215 fields: [subscribers_to_publications.publication], 216 references: [publications.uri] 217 }), 218})); 219 220export const permission_token_on_homepageRelations = relations(permission_token_on_homepage, ({one}) => ({ 221 identity: one(identities, { 222 fields: [permission_token_on_homepage.identity], 223 references: [identities.id] 224 }), 225 permission_token: one(permission_tokens, { 226 fields: [permission_token_on_homepage.token], 227 references: [permission_tokens.id] 228 }), 229})); 230 231export const documents_in_publicationsRelations = relations(documents_in_publications, ({one}) => ({ 232 document: one(documents, { 233 fields: [documents_in_publications.document], 234 references: [documents.uri] 235 }), 236 publication: one(publications, { 237 fields: [documents_in_publications.publication], 238 references: [publications.uri] 239 }), 240})); 241 242export const document_mentions_in_bskyRelations = relations(document_mentions_in_bsky, ({one}) => ({ 243 document: one(documents, { 244 fields: [document_mentions_in_bsky.document], 245 references: [documents.uri] 246 }), 247 bsky_post: one(bsky_posts, { 248 fields: [document_mentions_in_bsky.uri], 249 references: [bsky_posts.uri] 250 }), 251})); 252 253export const bsky_postsRelations = relations(bsky_posts, ({many}) => ({ 254 document_mentions_in_bskies: many(document_mentions_in_bsky), 255})); 256 257export const publication_domainsRelations = relations(publication_domains, ({one}) => ({ 258 custom_domain: one(custom_domains, { 259 fields: [publication_domains.domain], 260 references: [custom_domains.domain] 261 }), 262 identity: one(identities, { 263 fields: [publication_domains.identity], 264 references: [identities.atp_did] 265 }), 266 publication: one(publications, { 267 fields: [publication_domains.publication], 268 references: [publications.uri] 269 }), 270})); 271 272export const leaflets_in_publicationsRelations = relations(leaflets_in_publications, ({one}) => ({ 273 document: one(documents, { 274 fields: [leaflets_in_publications.doc], 275 references: [documents.uri] 276 }), 277 permission_token: one(permission_tokens, { 278 fields: [leaflets_in_publications.leaflet], 279 references: [permission_tokens.id] 280 }), 281 publication: one(publications, { 282 fields: [leaflets_in_publications.publication], 283 references: [publications.uri] 284 }), 285})); 286 287export const publication_subscriptionsRelations = relations(publication_subscriptions, ({one}) => ({ 288 identity: one(identities, { 289 fields: [publication_subscriptions.identity], 290 references: [identities.atp_did] 291 }), 292 publication: one(publications, { 293 fields: [publication_subscriptions.publication], 294 references: [publications.uri] 295 }), 296})); 297 298export const permission_token_rightsRelations = relations(permission_token_rights, ({one}) => ({ 299 entity_set: one(entity_sets, { 300 fields: [permission_token_rights.entity_set], 301 references: [entity_sets.id] 302 }), 303 permission_token: one(permission_tokens, { 304 fields: [permission_token_rights.token], 305 references: [permission_tokens.id] 306 }), 307}));