1use crate::{
2 admin::{Login, Migrate, ProjectAuthAdmin, 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 + TenantAuthAdmin<
26 CreateAuthorizationCode,
27 AuthorizationCode,
28 AuthorizationCodeSearchClaims,
29 AuthorizationCode,
30 String,
31 > + TenantAuthAdmin<CreateTenant, Tenant, TenantSearchClaims, Tenant, String>
32 + TenantAuthAdmin<CreateUser, User, UserSearchClauses, UpdateUser, String>
33 + TenantAuthAdmin<CreateProject, Project, ProjectSearchClaims, Project, String>
34 + ProjectAuthAdmin<
35 CreateAuthorizationCode,
36 AuthorizationCode,
37 AuthorizationCodeSearchClaims,
38 AuthorizationCode,
39 String,
40 > + ProjectAuthAdmin<CreateMembership, Membership, MembershipSearchClaims, Membership, String>
41 + ProjectAuthAdmin<CreateScope, Scope, ScopeSearchClaims, UpdateScope, ScopeKey>
42 + Login
43 + Migrate
44{
45}