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