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