mod audit;
mod config;
mod error;
mod invitation_manager;
mod manager;
mod membership_manager;
mod rate_limit;
mod seats;
pub mod storage;
mod types;
mod utils;
#[cfg(feature = "billing")]
mod billing;
#[cfg(feature = "organizations-seaorm")]
mod sea_orm_store;
pub mod auth;
#[cfg(any(test, feature = "test-organizations"))]
pub mod test;
pub use config::{InvitationConfig, OrganizationConfig};
pub use error::OrganizationError;
pub use invitation_manager::{InvitationCreateParams, InvitationManager};
pub use manager::{MembershipCreateParams, OrgCreateParams, OrganizationManager};
pub use membership_manager::MembershipManager;
pub use seats::{SeatChecker, UnlimitedSeats};
pub use storage::{InvitationStore, MembershipStore, OrganizationStore};
pub use audit::{OrgAuditEntry, OrgAuditEvent};
pub use storage::{OptionalAuditStore, OrgAuditStore, WithAuditStore};
pub use rate_limit::{
InvitationRateLimitConfig, InvitationRateLimiter, OptionalInvitationRateLimiter,
WithInvitationRateLimiter,
};
pub use types::{DefaultOrgRole, OrgRolePermissions, ParseRoleError};
#[cfg(feature = "billing")]
pub use billing::{BillableOrganization, BillingSeatChecker};
#[cfg(feature = "organizations-seaorm")]
pub use sea_orm_store::{
InvitationStatus, SeaOrmInvitation, SeaOrmMembership, SeaOrmOrgStore, SeaOrmOrganization,
};
pub use auth::{
AuthenticatedUserId, CurrentMembership, CurrentOrg, OrgClaims, OrgStoreLayer,
RequireOrgMembership, RequirePermission, create_org_token_subject,
};
#[cfg(any(test, feature = "test-organizations"))]
pub use test::{InMemoryOrgStore, TestInvitation, TestMembership, TestOrganization};