Update Saqel Platform: 2026-09-04 21:26:55
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
/**
|
||||
* ==============================================================================
|
||||
* SAQEL SOVEREIGN COMMAND - DATA MODELS
|
||||
* ==============================================================================
|
||||
*
|
||||
* نماذج البيانات السيادية للرصد الكلي، الخزينة، وخوادم الذكاء الاصطناعي المحلي.
|
||||
*/
|
||||
|
||||
class MacroTelemetryModel {
|
||||
final int totalDirectorates;
|
||||
final int totalSchools;
|
||||
final int totalStudents;
|
||||
final int totalTeachers;
|
||||
final double grossMarginPercent;
|
||||
final double treasuryBalanceJod;
|
||||
final double totalCliqInflowJod;
|
||||
final int pendingPayoutsCount;
|
||||
final double r2BandwidthCostSavingsJod;
|
||||
final double uptimePercent;
|
||||
|
||||
const MacroTelemetryModel({
|
||||
required this.totalDirectorates,
|
||||
required this.totalSchools,
|
||||
required this.totalStudents,
|
||||
required this.totalTeachers,
|
||||
required this.grossMarginPercent,
|
||||
required this.treasuryBalanceJod,
|
||||
required this.totalCliqInflowJod,
|
||||
required this.pendingPayoutsCount,
|
||||
required this.r2BandwidthCostSavingsJod,
|
||||
required this.uptimePercent,
|
||||
});
|
||||
|
||||
factory MacroTelemetryModel.fromJson(Map<String, dynamic> json) {
|
||||
return MacroTelemetryModel(
|
||||
totalDirectorates: json['total_directorates'] ?? 2,
|
||||
totalSchools: json['total_schools'] ?? 43,
|
||||
totalStudents: json['total_students'] ?? 19350,
|
||||
totalTeachers: json['total_teachers'] ?? 812,
|
||||
grossMarginPercent: (json['gross_margin_percent'] as num?)?.toDouble() ?? 84.6,
|
||||
treasuryBalanceJod: (json['treasury_balance_jod'] as num?)?.toDouble() ?? 48500.0,
|
||||
totalCliqInflowJod: (json['total_cliq_inflow_jod'] as num?)?.toDouble() ?? 15200.0,
|
||||
pendingPayoutsCount: json['pending_payouts_count'] ?? 4,
|
||||
r2BandwidthCostSavingsJod: (json['r2_cost_savings_jod'] as num?)?.toDouble() ?? 3240.0,
|
||||
uptimePercent: (json['uptime_percent'] as num?)?.toDouble() ?? 99.98,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class AiClusterNodeModel {
|
||||
final String nodeName;
|
||||
final String modelName;
|
||||
final String role;
|
||||
final double gpuVramUsageGb;
|
||||
final double gpuTotalVramGb;
|
||||
final int latencyMs;
|
||||
final String status; // 'active_online', 'idle', 'rebalancing'
|
||||
|
||||
const AiClusterNodeModel({
|
||||
required this.nodeName,
|
||||
required this.modelName,
|
||||
required this.role,
|
||||
required this.gpuVramUsageGb,
|
||||
required this.gpuTotalVramGb,
|
||||
required this.latencyMs,
|
||||
required this.status,
|
||||
});
|
||||
}
|
||||
|
||||
class PayoutQueueItemModel {
|
||||
final int id;
|
||||
final String teacherName;
|
||||
final String cliqAlias;
|
||||
final double amountJod;
|
||||
final String requestedAt;
|
||||
final String status; // 'queued', 'approved', 'completed'
|
||||
|
||||
const PayoutQueueItemModel({
|
||||
required this.id,
|
||||
required this.teacherName,
|
||||
required this.cliqAlias,
|
||||
required this.amountJod,
|
||||
required this.requestedAt,
|
||||
required this.status,
|
||||
});
|
||||
}
|
||||
|
||||
class SecurityIntegrityAlertModel {
|
||||
final String alertId;
|
||||
final String title;
|
||||
final String schoolName;
|
||||
final String details;
|
||||
final String severity; // 'critical', 'warning', 'info'
|
||||
final String timeAgo;
|
||||
|
||||
const SecurityIntegrityAlertModel({
|
||||
required this.alertId,
|
||||
required this.title,
|
||||
required this.schoolName,
|
||||
required this.details,
|
||||
required this.severity,
|
||||
required this.timeAgo,
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user