kaccy_reputation/
lib.rs

1//! # Kaccy Reputation System
2//!
3//! A comprehensive, production-ready reputation system for the Kaccy Protocol that provides
4//! scoring, commitment tracking, tier management, and advanced analytics.
5//!
6//! ## Overview
7//!
8//! The reputation system enables users to build trust through verifiable commitments and
9//! track their standing within the community. It includes sophisticated features like:
10//!
11//! - **Dynamic Scoring**: Multi-component reputation scoring (0-1000 scale)
12//! - **Tier System**: 6 tiers from Unverified to Diamond with progressive benefits
13//! - **Commitment Tracking**: Create, verify, and track deliverable commitments
14//! - **Circuit Breaker**: Automatic protection against low-reputation actors
15//! - **Caching Layer**: High-performance in-memory caching
16//! - **Analytics**: System-wide statistics and user insights
17//! - **Export/Import**: Data portability and backup support
18//!
19//! ## Quick Start
20//!
21//! ```rust,no_run
22//! use kaccy_reputation::*;
23//! use rust_decimal_macros::dec;
24//!
25//! # async fn example() -> Result<(), Box<dyn std::error::Error>> {
26//! // Calculate a reputation score from components
27//! let components = ScoreComponents {
28//!     commitment_fulfillment: dec!(85.0),  // 35% weight
29//!     response_time: dec!(75.0),           // 15% weight
30//!     quality_rating: dec!(90.0),          // 30% weight
31//!     community_trust: dec!(80.0),         // 15% weight
32//!     longevity: dec!(70.0),               // 5% weight
33//! };
34//!
35//! let overall = components.calculate_overall();      // Weighted average (0-100)
36//! let score = components.calculate_scaled_overall(); // Scaled to 0-1000
37//!
38//! // Determine tier from score
39//! let tier = ReputationTier::from_score(score);
40//! let benefits = tier.benefits();
41//!
42//! println!("Score: {}, Tier: {}, Can issue tokens: {}",
43//!          score, tier, benefits.can_issue_tokens);
44//! # Ok(())
45//! # }
46//! ```
47//!
48//! ## Architecture
49//!
50//! The crate is organized into several key subsystems:
51//!
52//! ### Core Reputation System
53//! - [`score`] - Reputation scoring and calculation
54//! - [`tier`] - Tier system and benefits
55//! - [`circuit_breaker`] - Automatic restrictions for low reputation
56//! - [`confidence`] - Data confidence tracking and weighting
57//!
58//! ### Commitment System
59//! - [`commitment`] - Basic commitment tracking
60//! - [`milestone`] - Milestone-based commitments
61//! - [`recurring`] - Recurring commitment schedules
62//! - [`templates`] - Pre-defined commitment templates
63//!
64//! ### Advanced Features
65//! - [`cache`] - In-memory caching for performance
66//! - [`events`] - Event sourcing and notifications
67//! - [`holder_ratings`] - Community trust ratings
68//! - [`time_decay`] - Inactivity-based score decay
69//!
70//! ### AI & Verification
71//! - [`ai_scoring`] - AI-assisted quality evaluation
72//! - [`dispute`] - Dispute resolution and appeals
73//! - [`sbt`] - Soulbound token integration
74//! - [`portability`] - Cross-platform reputation import/export
75//!
76//! ### Analytics & Monitoring
77//! - [`analytics`] - System-wide statistics
78//! - [`audit`] - Comprehensive audit trail
79//! - [`batch`] - High-performance bulk operations
80//! - [`leaderboard`] - Rankings and achievements
81//! - [`maintenance`] - Health checks and data integrity
82//!
83//! ### Integration
84//! - [`integration`] - High-level orchestration layer ([`ReputationOrchestrator`])
85//! - [`validation`] - Input validation utilities
86//! - [`export_import`] - Data export and import
87//!
88//! ## Performance Considerations
89//!
90//! - Use [`ReputationCache`] for frequently accessed scores (reduces database load)
91//! - Run [`batch`] operations during off-peak hours
92//! - Set appropriate cache TTL based on your update frequency
93//! - Use database indexes (see migrations) for optimal query performance
94//!
95//! ## Error Handling
96//!
97//! All operations return `Result<T, ReputationError>`. See [`error::ReputationError`]
98//! for comprehensive error types and handling patterns.
99//!
100//! ## Examples
101//!
102//! See the `examples/` directory for comprehensive usage examples:
103//! - `basic_reputation_management` - Core concepts and workflows
104//! - `commitment_lifecycle` - Managing commitments
105//! - `caching_integration` - Performance optimization
106//! - `advanced_analytics` - Statistics and insights
107//! - `export_import` - Data portability
108//!
109//! ## Feature Flags
110//!
111//! This crate has no optional features. All functionality is included by default.
112//!
113//! [`ReputationOrchestrator`]: integration::ReputationOrchestrator
114//! [`ReputationCache`]: cache::ReputationCache
115
116// Phase 0-1 modules
117pub mod cache;
118pub mod circuit_breaker;
119pub mod commitment;
120pub mod confidence;
121pub mod error;
122pub mod events;
123pub mod export_import;
124pub mod history;
125pub mod holder_ratings;
126pub mod milestone;
127pub mod recurring;
128pub mod score;
129pub mod score_history;
130pub mod templates;
131pub mod tier;
132pub mod time_decay;
133pub mod validation;
134
135// Phase 2 modules
136pub mod ai_scoring;
137pub mod dispute;
138pub mod portability;
139pub mod sbt;
140
141// Phase 6 modules
142pub mod analytics;
143pub mod audit;
144pub mod batch;
145pub mod leaderboard;
146pub mod maintenance;
147
148// Integration
149pub mod integration;
150
151// Phase 19 modules
152pub mod query_builder;
153
154// Phase 20 modules
155pub mod statistics;
156
157// Phase 0-1 exports
158pub use cache::{CacheCleanupStats, CacheStats, CachedScore, CachedTier, ReputationCache};
159pub use circuit_breaker::{CircuitBreaker, CircuitBreakerAction, CircuitBreakerStatus};
160pub use commitment::{
161    CommitmentService, CommitmentStatus, CreateCommitmentRequest, CreateCommitmentRequestBuilder,
162    OutputCommitment, SubmitEvidenceRequest, VerifyCommitmentRequest,
163};
164pub use confidence::{
165    ComponentConfidence, ConfidenceBreakdown, ConfidenceLevel, ConfidenceTracker, WeightedScore,
166};
167pub use error::ReputationError;
168pub use events::{
169    CreateEventRequest, EventService, EventSummary, EventType, NotificationHandler,
170    NotificationSeverity, RecalculatedScore, ReputationEvent, ScoreNotification,
171};
172pub use export_import::{
173    BulkReputationExport, CommitmentExport, EventExport, ExportImportService, ExportStats,
174    RatingExport, ScoreHistoryExport, TierHistoryExport, UserReputationExport,
175};
176pub use history::{TierHistoryRecord, TierHistoryRepository, TierHistorySummary, TierTracker};
177pub use holder_ratings::{
178    HolderRating, HolderRatingService, RatingDistribution, RatingRequest, RatingStats,
179};
180pub use milestone::{
181    CreateMilestoneCommitmentRequest, Milestone, MilestoneCommitment, MilestoneService,
182    MilestoneStatus,
183};
184pub use recurring::{
185    CreateRecurringRequest, GeneratedCommitment, RecurrenceFrequency, RecurringCommitment,
186    RecurringCommitmentService, RecurringSummary, UpcomingDeadline,
187};
188pub use score::*;
189pub use score_history::{ScoreHistoryRepository, ScoreSnapshot, ScoreTrend, TrendDirection};
190pub use templates::{
191    CategoryCount, CommitmentTemplate, CreateFromTemplateRequest, CreateTemplateRequest,
192    TemplateCategory, TemplateService, TemplateSummary, TemplateUsage,
193};
194pub use tier::*;
195pub use time_decay::{DecayConfig, TimeDecayService};
196pub use validation::*;
197
198// Phase 2 exports
199pub use ai_scoring::{
200    AIScoringService, AspectScores, DetectFraudRequest, EvaluateQualityRequest, FraudDetection,
201    FraudPattern, PredictSuccessRequest, PredictionFactor, QualityEvaluation, QualityFlag,
202    SuccessPrediction,
203};
204pub use dispute::{
205    Appeal, AppealStatus, CreateAppealRequest, CreateDisputeRequest, Dispute, DisputeOutcome,
206    DisputeResults, DisputeService, DisputeStatus, DisputeVote, VoteChoice, VoteDisputeRequest,
207};
208pub use portability::{
209    CredentialProof, CredentialSubject, ExportReputationRequest, ExternalReputation,
210    GitHubReputation, ImportReputationRequest, ImportResult, LinkedInReputation, Platform,
211    PortabilityService, StackOverflowReputation, VerifiableCredential,
212};
213pub use sbt::{
214    MintSBTRequest, OnChainSBT, SBTAttribute, SBTMetadata, SBTService, SoulboundToken,
215    UpdateSBTRequest,
216};
217
218// Phase 6 exports
219pub use analytics::{
220    AnalyticsService, GrowthMetrics, ScoreDistribution, SystemStats, TierCount,
221    UserCommitmentAnalytics, UserRanking,
222};
223pub use audit::{
224    AuditEvent, AuditEventType, AuditRecord, AuditSearch, AuditService, AuditSummary, EntityType,
225    EventTypeCount,
226};
227pub use batch::{
228    BatchDecayResult, BatchExpireResult, BatchScoreResult, BatchService, BatchVerifyResult,
229    FailedOperation, FailedVerification, LowScoreUser, PendingCommitmentInfo, ScoreUpdate,
230};
231pub use leaderboard::{
232    Achievement, AchievementType, AwardedAchievement, Leaderboard, LeaderboardEntry,
233    LeaderboardService, LeaderboardType, UserRankInfo,
234};
235pub use maintenance::{HealthCheckReport, MaintenanceReport, MaintenanceService};
236
237// Integration exports
238pub use integration::{
239    AnalyticsDashboard, BulkVerificationReport, CompleteReputationProfile,
240    ComprehensiveUserProfile, CrisisResponse, CrisisSeverity, CrisisType, DailyMaintenanceReport,
241    InterventionAction, InterventionReport, InterventionType, PerformanceMetrics,
242    ReputationOrchestrator, SystemHealthReport, UserActivityReport, UserOnboardingReport,
243};
244
245// Phase 19 exports
246pub use query_builder::{
247    CommitmentQueryBuilder, EventQueryBuilder, LeaderboardQueryBuilder, QueryResult,
248};
249
250// Phase 20 exports
251pub use statistics::{
252    ComponentCorrelation, MovingAverage, Percentiles, Quartiles, ScoreStatistics, ScoreVolatility,
253    Statistics, TrendAnalysis, TrendMomentum,
254};