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