<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.List, java.text.SimpleDateFormat, com.hrs.model.entity.Reservation, com.hrs.model.entity.House, com.hrs.model.entity.User" %>
<%
    User loginUser = (User) session.getAttribute("loginUser");
    if (loginUser == null || !"0".equals(loginUser.getRoleType())) {
        response.sendRedirect(request.getContextPath() + "/user/login");
        return;
    }
    
    List<Reservation> reservationList = (List<Reservation>) request.getAttribute("reservationList");
    Integer totalCount = (Integer) request.getAttribute("totalCount");
    String msg = request.getParameter("msg");
    String error = request.getParameter("error");
    
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>我的预约 - 租房系统</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        
        body {
            font-family: Arial, "微软雅黑", sans-serif;
            background-color: #f5f5f5;
        }
        
        .header {
            background-color: #4CAF50;
            color: white;
            padding: 15px 0;
            box-shadow: 0 2px 5px rgba(0,0,0,0.1);
        }
        
        .container {
            width: 1200px;
            margin: 0 auto;
            overflow: hidden;
        }
        
        .logo {
            float: left;
            font-size: 24px;
            font-weight: bold;
        }
        
        .nav {
            float: right;
            margin-top: 5px;
        }
        
        .nav a {
            color: white;
            text-decoration: none;
            margin-left: 20px;
            padding: 5px 10px;
        }
        
        .nav a:hover, .nav a.active {
            background-color: #45a049;
            border-radius: 4px;
        }
        
        .user-info {
            float: right;
            margin-right: 20px;
            font-size: 14px;
        }
        
        .breadcrumb {
            background-color: white;
            padding: 12px 0;
            margin-bottom: 20px;
            border-radius: 4px;
            box-shadow: 0 1px 3px rgba(0,0,0,0.1);
        }
        
        .breadcrumb a {
            color: #4CAF50;
            text-decoration: none;
        }
        
        .stats {
            background-color: white;
            padding: 10px 15px;
            border-radius: 4px;
            margin-bottom: 20px;
            color: #666;
        }
        
        .message {
            background-color: #e8f5e9;
            color: #2e7d32;
            padding: 12px;
            border-radius: 4px;
            margin-bottom: 20px;
            text-align: center;
            animation: fadeOut 3s ease forwards;
        }
        
        .error-message {
            background-color: #ffebee;
            color: #c62828;
            padding: 12px;
            border-radius: 4px;
            margin-bottom: 20px;
            text-align: center;
            animation: fadeOut 3s ease forwards;
        }
        
        @keyframes fadeOut {
            0% { opacity: 1; }
            70% { opacity: 1; }
            100% { opacity: 0; display: none; }
        }
        
        .reservation-table {
            background-color: white;
            border-radius: 8px;
            overflow: hidden;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
        }
        
        table {
            width: 100%;
            border-collapse: collapse;
        }
        
        th, td {
            padding: 15px;
            text-align: left;
            border-bottom: 1px solid #eee;
        }
        
        th {
            background-color: #f5f5f5;
            font-weight: bold;
            color: #333;
        }
        
        tr:hover {
            background-color: #f9f9f9;
        }
        
        .status-badge {
            display: inline-block;
            padding: 4px 12px;
            border-radius: 20px;
            font-size: 12px;
            font-weight: bold;
        }
        
        .status-pending {
            background-color: #fff3e0;
            color: #f39c12;
        }
        
        .status-confirmed {
            background-color: #e8f5e9;
            color: #4CAF50;
        }
        
        .status-cancelled {
            background-color: #ffebee;
            color: #f44336;
        }
        
        .status-completed {
            background-color: #e3f2fd;
            color: #2196F3;
        }
        
        .house-link {
            color: #4CAF50;
            text-decoration: none;
        }
        
        .house-link:hover {
            text-decoration: underline;
        }
        
        .btn {
            padding: 4px 12px;
            border: none;
            border-radius: 4px;
            cursor: pointer;
            font-size: 12px;
            text-decoration: none;
            display: inline-block;
        }
        
        .btn-danger {
            background-color: #f44336;
            color: white;
        }
        
        .btn-danger:hover {
            background-color: #d32f2f;
        }
        
        .btn-disabled {
            background-color: #ccc;
            color: #666;
            cursor: not-allowed;
        }
        
        .empty-state {
            text-align: center;
            padding: 60px;
            background-color: white;
            border-radius: 8px;
            color: #999;
        }
        
        .empty-state p {
            margin-top: 20px;
        }
        
        .empty-state a {
            color: #4CAF50;
            text-decoration: none;
        }
        
        .footer {
            background-color: #333;
            color: white;
            text-align: center;
            padding: 20px;
            margin-top: 40px;
        }
        
        .clearfix::after {
            content: "";
            clear: both;
            display: table;
        }
    </style>
</head>
<body>
    <div class="header">
        <div class="container clearfix">
            <div class="logo">🏠 租房系统</div>
            <div class="user-info">
                欢迎，<%= loginUser.getRealName() %> |
                <a href="${pageContext.request.contextPath}/user/logout" style="color:white;">退出</a>
            </div>
            <div class="nav">
                <a href="${pageContext.request.contextPath}/user/house/list">首页</a>
                <a href="${pageContext.request.contextPath}/user/collection/list">我的收藏</a>
                <a href="${pageContext.request.contextPath}/user/reservation/list" class="active">我的预约</a>
                <a href="${pageContext.request.contextPath}/user/order/list">我的订单</a>
            </div>
        </div>
    </div>
    
    <div class="container">
        <div class="breadcrumb">
            <a href="${pageContext.request.contextPath}/user/house/list">首页</a> &gt;
            <span>我的预约</span>
        </div>
        
        <% if (msg != null && !msg.isEmpty()) { %>
            <div class="message"><%= msg %></div>
        <% } %>
        <% if (error != null && !error.isEmpty()) { %>
            <div class="error-message"><%= error %></div>
        <% } %>
        
        <div class="stats">
            📋 共有 <strong><%= totalCount != null ? totalCount : 0 %></strong> 条预约记录
        </div>
        
        <div class="reservation-table">
            <%
                if (reservationList != null && !reservationList.isEmpty()) {
            %>
            <table>
                <thead>
                    <tr>
                        <th>房源信息</th>
                        <th>预约时间</th>
                        <th>状态</th>
                        <th>备注</th>
                        <th>操作</th>
                    </tr>
                </thead>
                <tbody>
                    <%
                        for (Reservation reservation : reservationList) {
                            House house = reservation.getHouse();
                            if (house == null) continue;
                            
                            // 安全获取状态值，避免空指针
                            String status = reservation.getStatus();
                            String statusClass = "";
                            String statusText = "";
                            if ("0".equals(status)) {
                                statusClass = "pending";
                                statusText = "待确认";
                            } else if ("1".equals(status)) {
                                statusClass = "confirmed";
                                statusText = "已确认";
                            } else if ("2".equals(status)) {
                                statusClass = "cancelled";
                                statusText = "已取消";
                            } else if ("3".equals(status)) {
                                statusClass = "completed";
                                statusText = "已完成";
                            } else {
                                statusClass = "pending";
                                statusText = "未知";
                            }
                            
                            String remark = reservation.getRemark();
                            String remarkDisplay = (remark != null && !remark.trim().isEmpty()) ? remark : "-";
                            
                            java.util.Date reserveTime = reservation.getReserveTime();
                            String reserveTimeStr = reserveTime != null ? sdf.format(reserveTime) : "-";
                    %>
                    <tr>
                        <td>
                            <a href="${pageContext.request.contextPath}/user/house/detail?id=<%= house.getId() %>" class="house-link">
                                <strong><%= house.getTitle() != null ? house.getTitle() : "未知房源" %></strong>
                            </a><br>
                            <span style="font-size:12px;color:#999;">
                                <%= house.getArea() != null ? house.getArea() : "" %> 
                                <%= house.getRentPrice() != null ? "| ¥" + house.getRentPrice() + "/月" : "" %>
                            </span>
                        </td>
                        <td><%= reserveTimeStr %></td>
                        <td>
                            <span class="status-badge status-<%= statusClass %>"><%= statusText %></span>
                        </td>
                        <td style="max-width:200px; overflow:hidden; text-overflow:ellipsis;">
                            <%= remarkDisplay %>
                        </td>
                        <td>
                            <% if ("0".equals(status)) { %>
                                <a href="${pageContext.request.contextPath}/user/reservation/cancel?id=<%= reservation.getId() %>" 
                                   class="btn btn-danger" 
                                   onclick="return confirm('确定要取消这个预约吗？')">取消</a>
                            <% } else { %>
                                <span class="btn btn-disabled">已处理</span>
                            <% } %>
                        </td>
                    </tr>
                    <%
                        }
                    %>
                </tbody>
            </table>
            <%
                } else {
            %>
            <div class="empty-state">
                <div style="font-size: 64px;">📅</div>
                <p>还没有任何预约记录</p>
                <p><a href="${pageContext.request.contextPath}/user/house/list">去浏览房源 &gt;&gt;</a></p>
            </div>
            <%
                }
            %>
        </div>
    </div>
    
    <div class="footer">
        <p>© 2026 租房系统 | 让租房更简单</p>
    </div>
</body>
</html>