61 lines
2.0 KiB
Dart
61 lines
2.0 KiB
Dart
import 'package:freezed_annotation/freezed_annotation.dart';
|
|
|
|
part 'dashboard_model.freezed.dart';
|
|
part 'dashboard_model.g.dart';
|
|
|
|
@freezed
|
|
class DashboardKpis with _$DashboardKpis {
|
|
const factory DashboardKpis({
|
|
@JsonKey(name: 'total_assets') @Default(0) int totalAssets,
|
|
@JsonKey(name: 'allocated_assets') @Default(0) int allocatedAssets,
|
|
@JsonKey(name: 'available_assets') @Default(0) int availableAssets,
|
|
@JsonKey(name: 'maintenance_assets') @Default(0) int maintenanceAssets,
|
|
@JsonKey(name: 'disposed_assets') @Default(0) int disposedAssets,
|
|
@JsonKey(name: 'warranty_expiring') @Default(0) int warrantyExpiring,
|
|
}) = _DashboardKpis;
|
|
|
|
factory DashboardKpis.fromJson(Map<String, dynamic> json) =>
|
|
_$DashboardKpisFromJson(json);
|
|
}
|
|
|
|
@freezed
|
|
class ChartDataPoint with _$ChartDataPoint {
|
|
const factory ChartDataPoint({
|
|
required String label,
|
|
required double value,
|
|
}) = _ChartDataPoint;
|
|
|
|
factory ChartDataPoint.fromJson(Map<String, dynamic> json) =>
|
|
_$ChartDataPointFromJson(json);
|
|
}
|
|
|
|
@freezed
|
|
class DashboardCharts with _$DashboardCharts {
|
|
const factory DashboardCharts({
|
|
@JsonKey(name: 'assets_by_category') @Default([]) List<ChartDataPoint> assetsByCategory,
|
|
@JsonKey(name: 'assets_by_branch') @Default([]) List<ChartDataPoint> assetsByBranch,
|
|
@JsonKey(name: 'allocation_trend') @Default([]) List<ChartDataPoint> allocationTrend,
|
|
}) = _DashboardCharts;
|
|
|
|
factory DashboardCharts.fromJson(Map<String, dynamic> json) =>
|
|
_$DashboardChartsFromJson(json);
|
|
}
|
|
|
|
@freezed
|
|
class AuditLogModel with _$AuditLogModel {
|
|
const factory AuditLogModel({
|
|
required String id,
|
|
required String action,
|
|
required String module,
|
|
@JsonKey(name: 'entity_id') String? entityId,
|
|
@JsonKey(name: 'user_id') required String userId,
|
|
@JsonKey(name: 'user_name') String? userName,
|
|
Map<String, dynamic>? changes,
|
|
@JsonKey(name: 'ip_address') String? ipAddress,
|
|
DateTime? createdAt,
|
|
}) = _AuditLogModel;
|
|
|
|
factory AuditLogModel.fromJson(Map<String, dynamic> json) =>
|
|
_$AuditLogModelFromJson(json);
|
|
}
|