bharat_erp/lib/shared/models/dashboard_model.dart
SurendarSuri30 8f852ac4f6 Initial commit: Bharat ERP Flutter application.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 15:04:06 +05:30

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);
}