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