31 lines
1014 B
Dart
31 lines
1014 B
Dart
import 'package:flutter/material.dart';
|
|
|
|
import 'app_colors.dart';
|
|
|
|
/// Couleurs et libellés des statuts machine (inspiré WashOnline, plus lisible).
|
|
abstract final class MachineStatusTheme {
|
|
static Color color(String status) => switch (status) {
|
|
'available' => AppColors.machineAvailable,
|
|
'running' => AppColors.machineRunning,
|
|
'reserved' => AppColors.machineReserved,
|
|
'maintenance' || 'offline' || 'error' => AppColors.machineOffline,
|
|
_ => AppColors.textSecondary,
|
|
};
|
|
|
|
static String label(String status) => switch (status) {
|
|
'available' => 'Libre',
|
|
'running' => 'En cours',
|
|
'reserved' => 'Réservée',
|
|
'maintenance' => 'Maintenance',
|
|
'offline' => 'Hors ligne',
|
|
'error' => 'Erreur',
|
|
_ => status,
|
|
};
|
|
|
|
static IconData iconForType(String type) => type.startsWith('dryer')
|
|
? Icons.air_outlined
|
|
: Icons.water_drop_outlined;
|
|
|
|
static bool canStart(String status) => status == 'available';
|
|
}
|