1use crate::{
2 admin::{Login, Migrate, ProjectModelAdmin, SystemAdmin, TenantModelAdmin},
3 async_job::AsyncJobProvider,
4 failed_indexing::FailedIndexingProvider,
5 fhir::FHIRRepository,
6 sequence::ResourceSequential,
7 types::{
8 authorization_code::{
9 AuthorizationCode, AuthorizationCodeSearchClaims, CreateAuthorizationCode,
10 },
11 membership::{CreateMembership, Membership, MembershipSearchClaims},
12 mfa::{
13 MFAKey, UserMFACredential, UserMFACredentialCreate, UserMFACredentialUpdate,
14 UserMFASearchClaims,
15 },
16 project::{CreateProject, Project, ProjectSearchClaims},
17 scope::{CreateScope, Scope, ScopeKey, ScopeSearchClaims, UpdateScope},
18 tenant::{CreateTenant, Tenant, TenantSearchClaims},
19 user::{CreateUser, UpdateUser, User, UserSearchClauses},
20 },
21};
22
23pub mod admin;
24pub mod async_job;
25pub mod config;
26pub mod failed_indexing;
27pub mod fhir;
28pub mod pg;
29pub mod sequence;
30pub mod types;
31pub mod utilities;
32
33pub trait Repository:
35 FHIRRepository
36 + SystemAdmin<User, UserSearchClauses>
37 + TenantModelAdmin<
38 CreateAuthorizationCode,
39 AuthorizationCode,
40 AuthorizationCodeSearchClaims,
41 AuthorizationCode,
42 String,
43 > + TenantModelAdmin<CreateTenant, Tenant, TenantSearchClaims, Tenant, String>
44 + TenantModelAdmin<CreateUser, User, UserSearchClauses, UpdateUser, String>
45 + TenantModelAdmin<CreateProject, Project, ProjectSearchClaims, Project, String>
46 + TenantModelAdmin<
47 UserMFACredentialCreate,
48 UserMFACredential,
49 UserMFASearchClaims,
50 UserMFACredentialUpdate,
51 MFAKey,
52 > + ProjectModelAdmin<
53 CreateAuthorizationCode,
54 AuthorizationCode,
55 AuthorizationCodeSearchClaims,
56 AuthorizationCode,
57 String,
58 > + ProjectModelAdmin<CreateMembership, Membership, MembershipSearchClaims, Membership, String>
59 + ProjectModelAdmin<CreateScope, Scope, ScopeSearchClaims, UpdateScope, ScopeKey>
60 + FailedIndexingProvider
61 + AsyncJobProvider
62 + Login
63 + ResourceSequential
64 + Migrate
65{
66}