<%@ page import="java.sql.*" %>
<%@ page import="servlet.conexion_mysql" %>
<%@ page contentType="text/html; charset=UTF-8" %>
<% request.setCharacterEncoding("UTF-8"); %>

<%
    String mensaje = "";
    String idParam = request.getParameter("id");
    boolean editar = (idParam != null && !idParam.trim().isEmpty());

    int id_plato = 0;
    int id_restaurante = 0;
    String tipo_comida = "";
    String nombre_plato = "";
    String descripcion = "";
    double precio = 0.0;

    if (editar) {
        id_plato = Integer.parseInt(idParam);
        // Cargar datos para editar
        try (Connection con = conexion_mysql.getConnection()) {
            String sql = "SELECT * FROM platos_restaurante WHERE id_plato = ?";
            try (PreparedStatement ps = con.prepareStatement(sql)) {
                ps.setInt(1, id_plato);
                try (ResultSet rs = ps.executeQuery()) {
                    if (rs.next()) {
                        id_restaurante = rs.getInt("id_restaurante");
                        tipo_comida = rs.getString("tipo_comida");
                        nombre_plato = rs.getString("nombre_plato");
                        descripcion = rs.getString("descripcion");
                        precio = rs.getDouble("precio");
                    } else {
                        mensaje = "Plato no encontrado.";
                    }
                }
            }
        } catch (Exception e) {
            mensaje = "Error cargando plato: " + e.getMessage();
        }
    }

    if ("POST".equalsIgnoreCase(request.getMethod())) {
        // Procesar guardado (insert o update)
        try {
            id_restaurante = Integer.parseInt(request.getParameter("id_restaurante"));
            tipo_comida = request.getParameter("tipo_comida");
            nombre_plato = request.getParameter("nombre_plato");
            descripcion = request.getParameter("descripcion");
            precio = Double.parseDouble(request.getParameter("precio"));

            try (Connection con = conexion_mysql.getConnection()) {
                if (editar) {
                    String sql = "UPDATE platos_restaurante SET id_restaurante=?, tipo_comida=?, nombre_plato=?, descripcion=?, precio=? WHERE id_plato=?";
                    try (PreparedStatement ps = con.prepareStatement(sql)) {
                        ps.setInt(1, id_restaurante);
                        ps.setString(2, tipo_comida);
                        ps.setString(3, nombre_plato);
                        ps.setString(4, descripcion);
                        ps.setDouble(5, precio);
                        ps.setInt(6, id_plato);
                        ps.executeUpdate();
                    }
                    mensaje = "Plato actualizado correctamente.";
                } else {
                    String sql = "INSERT INTO platos_restaurante (id_restaurante, tipo_comida, nombre_plato, descripcion, precio) VALUES (?, ?, ?, ?, ?)";
                    try (PreparedStatement ps = con.prepareStatement(sql)) {
                        ps.setInt(1, id_restaurante);
                        ps.setString(2, tipo_comida);
                        ps.setString(3, nombre_plato);
                        ps.setString(4, descripcion);
                        ps.setDouble(5, precio);
                        ps.executeUpdate();
                    }
                    mensaje = "Plato creado correctamente.";
                    // Limpiar campos
                    id_restaurante = 0;
                    tipo_comida = "";
                    nombre_plato = "";
                    descripcion = "";
                    precio = 0.0;
                }
            }
        } catch (Exception e) {
            mensaje = "Error guardando plato: " + e.getMessage();
        }
    }
%>

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title><%= editar ? "Editar Plato" : "Nuevo Plato" %></title>
</head>
<body>

<h2><%= editar ? "Editar Plato" : "Nuevo Plato" %></h2>

<% if (!mensaje.isEmpty()) { %>
    <p style="color:green;"><%= mensaje %></p>
<% } %>

<form method="post" action="plato_form.jsp<%= editar ? "?id=" + id_plato : "" %>">

    <label for="id_restaurante">Restaurante:</label><br>
    <select name="id_restaurante" id="id_restaurante" required>
        <option value="">-- Selecciona --</option>
        <%
            try (Connection con = conexion_mysql.getConnection();
                 PreparedStatement ps = con.prepareStatement("SELECT id_restaurantes, nombre_restaurante FROM restaurantes");
                 ResultSet rs = ps.executeQuery()) {
                while (rs.next()) {
                    int id = rs.getInt("id_restaurantes");
                    String nombre = rs.getString("nombre_restaurante");
                    String selected = (id == id_restaurante) ? "selected" : "";
        %>
                    <option value="<%= id %>" <%= selected %>><%= nombre %></option>
        <%
                }
            } catch (Exception e) {
                out.println("<option>Error cargando restaurantes</option>");
            }
        %>
    </select>
    <br><br>

    <label for="tipo_comida">Tipo de Comida:</label><br>
    <input type="text" name="tipo_comida" id="tipo_comida" value="<%= tipo_comida %>" required placeholder="Ejemplo: comidas rápidas, ejecutivos" />
    <br><br>

    <label for="nombre_plato">Nombre del Plato:</label><br>
    <input type="text" name="nombre_plato" id="nombre_plato" value="<%= nombre_plato %>" required />
    <br><br>

    <label for="descripcion">Descripción:</label><br>
    <textarea name="descripcion" id="descripcion" rows="3"><%= descripcion %></textarea>
    <br><br>

    <label for="precio">Precio:</label><br>
    <input type="number" name="precio" id="precio" step="0.01" min="0" value="<%= precio %>" required />
    <br><br>

    <input type="submit" value="<%= editar ? "Actualizar" : "Guardar" %>" />
    <a href="platos_list.jsp">Cancelar</a>
</form>

</body>
</html>
