MIF_E31232435/lib/models/prediction_model.dart

73 lines
1.7 KiB
Dart

class PredictionRequest {
final String tanggal;
final String produk;
final String kategori;
final int harga;
PredictionRequest({
required this.tanggal,
required this.produk,
required this.kategori,
required this.harga,
});
Map<String, dynamic> toJson() => {
'tanggal': tanggal,
'produk': produk,
'kategori': kategori,
'harga': harga,
};
}
class PredictionResult {
final String status;
final int? jumlahUnit;
final double? nilaiRaw;
final int? estimasiTotalHarga;
final double? akurasiR2;
final double? errorMae;
final String? message;
PredictionResult({
required this.status,
this.jumlahUnit,
this.nilaiRaw,
this.estimasiTotalHarga,
this.akurasiR2,
this.errorMae,
this.message,
});
factory PredictionResult.fromJson(Map<String, dynamic> json) {
return PredictionResult(
status: json['status'] ?? 'error',
jumlahUnit: json['prediksi']?['jumlah_unit'],
nilaiRaw: (json['prediksi']?['nilai_raw'] ?? 0).toDouble(),
estimasiTotalHarga: json['prediksi']?['estimasi_total_harga'],
akurasiR2: (json['model_info']?['akurasi_r2'] ?? 0).toDouble(),
errorMae: (json['model_info']?['error_mae'] ?? 0).toDouble(),
message: json['message'],
);
}
bool get isSuccess => status == 'success';
}
class PredictionHistory {
final String tanggal;
final String produk;
final String kategori;
final int harga;
final int prediksi;
final DateTime timestamp;
PredictionHistory({
required this.tanggal,
required this.produk,
required this.kategori,
required this.harga,
required this.prediksi,
required this.timestamp,
});
}