Files
be_happy_public/lib/domain/entities/fine.dart
2026-08-14 13:47:11 +03:00

62 lines
1.9 KiB
Dart

import 'package:equatable/equatable.dart';
class Fine extends Equatable {
final int id;
final int orderId; // ← добавлено
final String scooterNumber; // можно оставить для совместимости, но не использовать в UI
final DateTime createdAtDateTime; // ← новое поле
final String description;
final double amount;
final String amountPrint;
final List<String> photoUrls;
final bool isPaid;
const Fine({
required this.id,
required this.orderId,
required this.scooterNumber,
required this.createdAtDateTime,
required this.description,
required this.amount,
required this.amountPrint,
required this.photoUrls,
required this.isPaid,
});
factory Fine.fromJson(Map<String, dynamic> json, {String? scooterNumber}) {
final List<dynamic> filesJson = json['files'] ?? [];
final List<String> photos = filesJson
.map((file) => file['path'] as String? ?? file['filename'] as String? ?? '')
.where((path) => path.isNotEmpty)
.toList();
// Парсим createdAt как DateTime
final createdAtDateTime = DateTime.tryParse(json['createdAt'].toString()) ??
DateTime.now(); // fallback
return Fine(
id: json['id'] as int? ?? 0,
orderId: json['orderId'] as int? ?? 0,
scooterNumber: scooterNumber ?? '',
createdAtDateTime: createdAtDateTime,
description: json['description'] as String? ?? '',
amount: (json['value'] as num?)?.toDouble() ?? 0.0,
amountPrint: json['valuePrint'] as String? ?? '0,00 BYN',
photoUrls: photos,
isPaid: json['isPaid'] as bool? ?? false,
);
}
@override
List<Object?> get props => [
id,
orderId,
scooterNumber,
createdAtDateTime,
description,
amount,
amountPrint,
photoUrls,
isPaid,
];
}