import 'package:turquessa_mesas_hoster/core/models/mesa_model.dart';
import 'package:turquessa_mesas_hoster/mvvm/views/home/home_screen.dart';
import 'package:flutter/material.dart';

// Clase para encapsular todas las propiedades de estilo relacionadas con el estado
class TableStatusStyle {
  final Color backgroundColor;
  final Color iconColor;
  final IconData icon;
  final Color cardColor;
  final EstadoPedido nextStatus;

  TableStatusStyle({
    required this.backgroundColor,
    required this.iconColor,
    required this.icon,
    required this.cardColor,
    required this.nextStatus,
  });
}

TableStatusStyle getStatusStyle(EstadoPedido? status) {
  status = status ?? EstadoPedido.disponible;

  switch (status) {
    case EstadoPedido.disponible:
      return TableStatusStyle(
        backgroundColor: const Color.fromARGB(255, 220, 252, 232),
        iconColor: Colors.green,
        icon: Icons.table_restaurant_rounded,
        cardColor: const Color.fromARGB(255, 220, 252, 232),
        nextStatus: EstadoPedido.preparacion,
      );
    case EstadoPedido.surtida:
      return TableStatusStyle(
        backgroundColor: const Color.fromARGB(255, 220, 234, 254),
        iconColor: Colors.blue,
        icon: Icons.coffee_rounded,
        cardColor: const Color.fromARGB(255, 220, 234, 254),
        nextStatus: EstadoPedido.cobrado,
      );
    case EstadoPedido.preparacion:
      return TableStatusStyle(
        backgroundColor: const Color.fromARGB(255, 243, 232, 255),
        iconColor: Colors.deepPurple,
        icon: Icons.restaurant_rounded,
        cardColor: Colors.white,
        nextStatus: EstadoPedido.surtida,
      );
    case EstadoPedido.cobrado:
      return TableStatusStyle(
        backgroundColor: const Color.fromARGB(255, 255, 238, 213),
        iconColor: Colors.amber,
        icon: Icons.attach_money_rounded,
        cardColor: Colors.white,
        nextStatus: EstadoPedido.disponible,
      );
    default:
      return TableStatusStyle(
        backgroundColor: Colors.grey.shade200,
        iconColor: Colors.grey,
        icon: Icons.settings,
        cardColor: Colors.white,
        nextStatus: EstadoPedido.disponible,
      );
  }
}
