ca-grow-ops-manager/frontend/src/lib/analyticsApi.ts
fullsizemalt 32fd739ccf
Some checks failed
Deploy to Production / deploy (push) Failing after 0s
Test / backend-test (push) Failing after 0s
Test / frontend-test (push) Failing after 0s
feat: Complete Phases 8-13 implementation
Phase 8: Visitor Management
- Visitor/VisitorLog/AccessZone models
- Check-in/out with badge generation
- Zone occupancy tracking
- Kiosk and management pages

Phase 9: Messaging & Communication
- Announcements with priority levels
- Acknowledgement tracking
- Shift notes for team handoffs
- AnnouncementBanner component

Phase 10: Compliance & Audit Trail
- Immutable AuditLog model
- Document versioning and approval workflow
- Acknowledgement tracking for SOPs
- CSV export for audit logs

Phase 11: Accessibility & i18n
- WCAG 2.1 AA compliance utilities
- react-i18next with EN/ES translations
- User preferences context (theme, font size, etc)
- High contrast and reduced motion support

Phase 12: Hardware Integration
- QR code generation for batches/plants/visitors
- Printable label system
- Visitor badge printing

Phase 13: Advanced Features
- Environmental monitoring (sensors, readings, alerts)
- Financial tracking (transactions, P&L reports)
- AI/ML insights (yield predictions, anomaly detection)
2025-12-11 00:26:25 -08:00

70 lines
1.5 KiB
TypeScript

import api from './api';
export interface AnalyticsOverview {
totalBatches: number;
activeBatches: number;
totalRooms: number;
tasksCompletedThisWeek: number;
tasksPending: number;
touchPointsToday: number;
totalPlants: number;
}
export interface BatchYield {
batchId: string;
batchName: string;
strain: string;
plantCount: number;
totalGrams: number;
logCount: number;
gramsPerPlant: number;
}
export interface StrainYield {
strain: string;
totalGrams: number;
totalPlants: number;
batchCount: number;
avgGramsPerPlant: number;
}
export interface YieldAnalytics {
byBatch: BatchYield[];
byStrain: StrainYield[];
}
export interface TaskSummary {
completed: number;
pending: number;
inProgress: number;
overdue: number;
total: number;
}
export interface UserTaskCompletion {
userId: string;
userName: string;
completedCount: number;
}
export interface TaskAnalytics {
summary: TaskSummary;
completedByUserThisWeek: UserTaskCompletion[];
}
export const analyticsApi = {
getOverview: async () => {
const response = await api.get<AnalyticsOverview>('/analytics/overview');
return response.data;
},
getYield: async () => {
const response = await api.get<YieldAnalytics>('/analytics/yield');
return response.data;
},
getTasks: async () => {
const response = await api.get<TaskAnalytics>('/analytics/tasks');
return response.data;
}
};