Files
2026-09-08 15:21:23 +07:00

87 lines
2.0 KiB
TypeScript

export type ReportAccuracy = number | null;
export type DashboardReportType = 'daily' | 'end_cycle';
export interface DashboardReportCountingRow {
date: string;
day: number;
countBefore: number | null;
mortality: number | null;
harvest: number | null;
harvestWeight: number | null;
countAfter: number | null;
iotCount: number | null;
accuracy: ReportAccuracy;
}
export interface DashboardReportWeightRow {
date: string;
day: number;
avgManual: number | null;
avgIot: number | null;
uniformity: number | null;
difference: number | null;
accuracy: ReportAccuracy;
}
export interface DashboardReportFeedInRow {
date: string;
manualIn: number | null;
iotIn: number | null;
accuracy: ReportAccuracy;
}
export interface DashboardReportFeedUseRow {
date: string;
day: number;
manualUse: number | null;
iotUse: number | null;
accuracy: ReportAccuracy;
}
export interface DashboardReportFeedOutRow {
date: string;
manualOut: number | null;
iotOut: number | null;
accuracy: ReportAccuracy;
}
export interface DashboardReportFcrRow {
day: number;
iotFcr: number | null;
feedTotal: number | null;
iotWeight: number | null;
chickenLife: number | null;
harvestWeightTotal: number | null;
}
export interface DashboardReportEefRow {
day: number;
iotEef: number | null;
chickenLifePercentage: number | null;
iotAverageHarvestBw: number | null;
iotAverageDayWeight: number | null;
iotFcr: number | null;
}
export interface DashboardReportPayload {
cycleId: string;
cycleStart: string;
cycleEnd: string;
kandangId: number;
kandangName: string;
area: string;
upToDay: number;
/** DOC / chick-in weight in grams from cycle settings */
docWeight: number | null;
generatedAt: string;
reportType: DashboardReportType;
counting: DashboardReportCountingRow[];
weight: DashboardReportWeightRow[];
feedIn: DashboardReportFeedInRow[];
feedUse: DashboardReportFeedUseRow[];
feedOut: DashboardReportFeedOutRow[];
fcr: DashboardReportFcrRow[];
eef: DashboardReportEefRow[];
}