use security_core::types::{ActorId, RequestId, TenantId, TraceId};
#[derive(Clone, Debug, Default)]
pub struct SecurityContext {
pub request_id: Option<RequestId>,
pub trace_id: Option<TraceId>,
pub actor_id: Option<ActorId>,
pub tenant_id: Option<TenantId>,
pub session_id: Option<String>,
}
impl SecurityContext {
#[must_use]
pub fn new() -> Self {
Self::default()
}
#[must_use]
pub fn with_request_id(mut self, request_id: RequestId) -> Self {
self.request_id = Some(request_id);
self
}
#[must_use]
pub fn with_trace_id(mut self, trace_id: TraceId) -> Self {
self.trace_id = Some(trace_id);
self
}
#[must_use]
pub fn with_actor_id(mut self, actor_id: ActorId) -> Self {
self.actor_id = Some(actor_id);
self
}
#[must_use]
pub fn with_tenant_id(mut self, tenant_id: TenantId) -> Self {
self.tenant_id = Some(tenant_id);
self
}
#[must_use]
pub fn with_session_id(mut self, session_id: String) -> Self {
self.session_id = Some(session_id);
self
}
}