refactor(US-170,174): update recording types and validation schema for daily recording form

This commit is contained in:
rstubryan
2025-10-30 18:10:37 +07:00
parent ae0cca778e
commit 4cb045de6c
3 changed files with 251 additions and 419 deletions
+90 -16
View File
@@ -1,46 +1,120 @@
import { BaseMetadata, User } from '@/types/api/api-general';
export type ProductionMetrics = {
total_depletion: number;
total_depletion_qty: number;
cum_depletion_rate: number;
daily_gain: number;
avg_daily_gain: number;
cum_intake: number;
fcr_value: number;
total_chick: number;
total_chick_qty: number;
daily_depletion_rate: number;
cum_depletion: number;
};
export type BaseRecording = {
id: number;
project_flock_kandang_id: number;
project_flock_kandangs_id: number;
record_datetime: string;
record_date: string;
status: number;
ontime: boolean;
day: number;
created_user: User;
created_by: User;
} & ProductionMetrics;
export type Recording = BaseMetadata & BaseRecording;
export type RecordingBW = {
id: number;
recording_id: number;
avg_weight: number;
qty: number;
total_weight: number;
};
export type CreateRecordingPayload = {
project_flock_kandang_id: number;
export type RecordingDepletion = {
id: number;
recording_id: number;
product_warehouse_id: number;
qty: number;
};
export type RecordingStock = {
id: number;
recording_id: number;
product_warehouse_id: number;
usage_qty: number;
pending_qty: number;
};
export type RecordingEgg = {
id: number;
recording_id: number;
product_warehouse_id: number;
qty: number;
created_by: User;
};
export type GradingEgg = {
id: number;
recording_egg_id: number;
qty: number;
grade: string;
created_by: User;
};
export type Recording = BaseMetadata &
BaseRecording & {
recording_bws?: RecordingBW[];
recording_depletions?: RecordingDepletion[];
recording_stocks?: RecordingStock[];
recording_eggs?: RecordingEgg[];
grading_eggs?: GradingEgg[];
};
export type CreateGrowingRecordingPayload = {
project_flock_kandangs_id: number;
body_weights: {
weight: number;
avg_weight: number;
qty: number;
}[];
stocks?: {
product_warehouse_id: number;
usage_amount: number;
notes: string;
usage_qty: number;
pending_qty?: number;
}[];
depletions?: {
product_warehouse_id?: number;
total: number;
notes: string;
product_warehouse_id: number;
qty: number;
}[];
};
export type CreateLayingRecordingPayload = {
project_flock_kandangs_id: number;
body_weights: {
avg_weight: number;
qty: number;
}[];
stocks?: {
product_warehouse_id: number;
usage_qty: number;
pending_qty?: number;
}[];
depletions?: {
product_warehouse_id: number;
qty: number;
}[];
eggs: {
product_warehouse_id: number;
qty: number;
grading?: {
grade: string;
qty: number;
}[];
}[];
};
export type CreateRecordingPayload =
| CreateGrowingRecordingPayload
| CreateLayingRecordingPayload;
export type UpdateGrowingRecordingPayload = CreateGrowingRecordingPayload;
export type UpdateLayingRecordingPayload = CreateLayingRecordingPayload;
export type UpdateRecordingPayload = CreateRecordingPayload;