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