88import org .bounswe .jobboardbackend .jobapplication .model .JobApplicationStatus ;
99import org .bounswe .jobboardbackend .jobapplication .repository .JobApplicationRepository ;
1010import org .bounswe .jobboardbackend .jobpost .repository .JobPostRepository ;
11+ import org .bounswe .jobboardbackend .mentorship .model .RequestStatus ;
12+ import org .bounswe .jobboardbackend .mentorship .repository .MentorProfileRepository ;
13+ import org .bounswe .jobboardbackend .mentorship .repository .MentorReviewRepository ;
14+ import org .bounswe .jobboardbackend .mentorship .repository .MentorshipRequestRepository ;
15+ import org .bounswe .jobboardbackend .mentorship .repository .ResumeReviewRepository ;
1116import org .springframework .scheduling .annotation .Scheduled ;
1217import org .springframework .stereotype .Service ;
1318
@@ -20,6 +25,10 @@ public class CommunityDashboardService {
2025 private final UserRepository userRepository ;
2126 private final JobPostRepository jobPostRepository ;
2227 private final JobApplicationRepository jobApplicationRepository ;
28+ private final MentorProfileRepository mentorProfileRepository ;
29+ private final MentorshipRequestRepository mentorshipRequestRepository ;
30+ private final MentorReviewRepository mentorReviewRepository ;
31+ private final ResumeReviewRepository resumeReviewRepository ;
2332
2433 private DashboardStatsResponse cachedStats = new DashboardStatsResponse ();
2534
@@ -47,9 +56,19 @@ public void refreshStats() {
4756 long acceptedApps = jobApplicationRepository .countByStatus (JobApplicationStatus .APPROVED );
4857 long rejectedApps = jobApplicationRepository .countByStatus (JobApplicationStatus .REJECTED );
4958
59+ // 4. Mentorship Stats
60+ long totalMentors = mentorProfileRepository .count ();
61+ long totalMentorshipRequests = mentorshipRequestRepository .count ();
62+ long acceptedMentorships = mentorshipRequestRepository .countByStatus (RequestStatus .ACCEPTED );
63+ long pendingRequests = mentorshipRequestRepository .countByStatus (RequestStatus .PENDING );
64+ long completedMentorships = mentorshipRequestRepository .countByStatus (RequestStatus .COMPLETED );
65+ long declinedRequests = mentorshipRequestRepository .countByStatus (RequestStatus .DECLINED );
66+ long closedRequests = mentorshipRequestRepository .countByStatus (RequestStatus .CLOSED );
67+ long totalMentorReviews = mentorReviewRepository .count ();
68+ long totalResumeReviews = resumeReviewRepository .count ();
69+
5070 // mock for now
5171 long forumPosts = 0 ;
52- long mentorships = 0 ;
5372
5473
5574 // update the cached stats
@@ -59,14 +78,22 @@ public void refreshStats() {
5978 .totalJobSeekers (totalJobSeekers )
6079 .totalJobPosts (totalJobPosts )
6180 .totalForumPosts (forumPosts )
62- .currentMentorships (mentorships )
6381 .remoteJobsCount (remoteJobs )
6482 .inclusiveJobsCount (inclusiveJobs )
6583 .newJobsThisWeekCount (newJobs )
6684 .totalApplications (totalApps )
6785 .totalPendingApplications (pendingApps )
6886 .totalAcceptedApplications (acceptedApps )
6987 .totalRejectedApplications (rejectedApps )
88+ .totalMentors (totalMentors )
89+ .totalMentorshipRequests (totalMentorshipRequests )
90+ .acceptedMentorships (acceptedMentorships )
91+ .pendingMentorshipRequests (pendingRequests )
92+ .completedMentorships (completedMentorships )
93+ .declinedMentorshipRequests (declinedRequests )
94+ .closedMentorshipRequests (closedRequests )
95+ .totalMentorReviews (totalMentorReviews )
96+ .totalResumeReviews (totalResumeReviews )
7097 .build ();
7198 }
7299
0 commit comments