pub mod ai_gateway_policies;
pub mod ai_quota_buckets;
pub mod ai_request_client_evidence;
pub mod ai_request_payloads;
pub mod ai_requests;
pub mod ai_safety_findings;
pub mod ai_usage_anomaly;
pub mod ownership;
pub mod thought_signatures;
use systemprompt_database::DbPool;
pub use ai_gateway_policies::{AiGatewayPolicyRepository, GatewayPolicyRow};
pub use ai_quota_buckets::{
AiQuotaBucketRepository, IncrementParams, QuotaBucketDelta, QuotaBucketState,
};
pub use ai_request_client_evidence::AiRequestClientEvidenceRepository;
pub use ai_request_payloads::{
AiRequestPayload, AiRequestPayloadRepository, PreparedPayload, UpsertPayloadParams,
};
pub use ai_requests::{
AdmissionWrite, AiRequestRepository, InsertToolCallParams, PreparedDigest, RequestMessageRow,
};
pub use ai_safety_findings::{
AiSafetyFindingRepository, InsertSafetyFinding, SafetyFindingRollupRow,
};
pub use ai_usage_anomaly::{AiUsageAnomalyRepository, HourlyUsageProfile};
pub use ownership::AiOwnerReassignment;
pub use thought_signatures::AiThoughtSignatureRepository;
#[derive(Debug, Clone)]
pub struct AiRepositories {
pub requests: AiRequestRepository,
pub payloads: AiRequestPayloadRepository,
pub gateway_policies: AiGatewayPolicyRepository,
pub quota_buckets: AiQuotaBucketRepository,
pub safety_findings: AiSafetyFindingRepository,
pub thought_signatures: AiThoughtSignatureRepository,
}
impl AiRepositories {
pub fn new(db: &DbPool) -> Self {
Self {
requests: AiRequestRepository::new(db),
payloads: AiRequestPayloadRepository::new(db),
gateway_policies: AiGatewayPolicyRepository::new(db),
quota_buckets: AiQuotaBucketRepository::new(db),
safety_findings: AiSafetyFindingRepository::new(db),
thought_signatures: AiThoughtSignatureRepository::new(db),
}
}
}