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