<?php

/*
|--------------------------------------------------------------------------
| TRẠNG THÁI LỊCH HẸN
|--------------------------------------------------------------------------
*/

$bookingStatusLabels = [
    'pending'     => 'Chờ xác nhận',
    'confirmed'   => 'Đã xác nhận',
    'in_progress' => 'Đang thực hiện',
    'completed'   => 'Hoàn thành',
    'cancelled'   => 'Đã hủy',
];


/*
|--------------------------------------------------------------------------
| MÀU BADGE TRẠNG THÁI
|--------------------------------------------------------------------------
*/

$bookingStatusClasses = [
    'pending'     => 'text-bg-warning',
    'confirmed'   => 'text-bg-primary',
    'in_progress' => 'text-bg-info',
    'completed'   => 'text-bg-success',
    'cancelled'   => 'text-bg-danger',
];


/*
|--------------------------------------------------------------------------
| HÀM LẤY TÊN TRẠNG THÁI
|--------------------------------------------------------------------------
*/

function booking_status_label(
    string $status,
    array $labels
): string {

    return $labels[$status]
        ?? $status;
}


/*
|--------------------------------------------------------------------------
| HÀM LẤY MÀU BADGE
|--------------------------------------------------------------------------
*/

function booking_status_class(
    string $status,
    array $classes
): string {

    return $classes[$status]
        ?? 'text-bg-secondary';
}


/*
|--------------------------------------------------------------------------
| CẤU HÌNH TRANG
|--------------------------------------------------------------------------
*/

$pageTitle =
    'Chi tiết lịch Spa - PET SPA';

$pageStyles = [
    'customer.css'
];

$activeCustomerPage =
    'bookings';


$successMessage =
    $_SESSION['flash_success']
    ?? null;

$errorMessage =
    $_SESSION['flash_error']
    ?? null;


unset(
    $_SESSION['flash_success'],
    $_SESSION['flash_error']
);


require BASE_PATH
    . '/app/views/layouts/header.php';

require BASE_PATH
    . '/app/views/layouts/navbar.php';

?>


<main class="customer-area">

    <div class="container-fluid">

        <div class="row">


            <?php
            require BASE_PATH
                . '/app/views/layouts/customer-sidebar.php';
            ?>


            <section class="col-lg-9 col-xl-10 py-4">


                <!-- QUAY LẠI -->

                <a
                    href="<?= BASE_URL ?>/?url=customer/bookings"
                    class="text-decoration-none"
                >
                    ← Lịch Spa
                </a>



                <!-- MÃ LỊCH -->

                <h1 class="h3 mt-3">

                    <?= htmlspecialchars(
                        $booking['booking_code']
                    ) ?>

                </h1>



                <!-- THÔNG BÁO THÀNH CÔNG -->

                <?php if ($successMessage): ?>

                    <div class="alert alert-success">

                        <?= htmlspecialchars(
                            $successMessage
                        ) ?>

                    </div>

                <?php endif; ?>



                <!-- THÔNG BÁO LỖI -->

                <?php if ($errorMessage): ?>

                    <div class="alert alert-danger">

                        <?= htmlspecialchars(
                            $errorMessage
                        ) ?>

                    </div>

                <?php endif; ?>



                <!-- =====================================================
                     THÔNG TIN LỊCH HẸN
                ====================================================== -->

                <div class="card mb-3">

                    <div class="card-body">


                        <!-- DỊCH VỤ -->

                        <p>

                            <strong>

                                <?= htmlspecialchars(
                                    $booking[
                                        'service_name_snapshot'
                                    ]
                                ) ?>

                            </strong>

                            —

                            <?= number_format(
                                (float) $booking[
                                    'service_price_snapshot'
                                ],
                                0,
                                ',',
                                '.'
                            ) ?>đ

                            ·

                            <?= (int) $booking[
                                'duration_minutes_snapshot'
                            ] ?>

                            phút

                        </p>



                        <!-- THỜI GIAN -->

                        <p>

                            <?= htmlspecialchars(
                                $booking['booking_date']
                            ) ?>,

                            <?= htmlspecialchars(
                                substr(
                                    $booking['start_time'],
                                    0,
                                    5
                                )
                            ) ?>

                            –

                            <?= htmlspecialchars(
                                substr(
                                    $booking['end_time'],
                                    0,
                                    5
                                )
                            ) ?>

                        </p>



                        <!-- THÚ CƯNG -->

                        <p>

                            Thú cưng:

                            <strong>

                                <?= htmlspecialchars(
                                    $booking['pet_name']
                                ) ?>

                            </strong>

                            (

                            <?= htmlspecialchars(
                                $booking['pet_type']
                            ) ?>


                            <?php if (!empty($booking['pet_breed'])): ?>

                                ,
                                <?= htmlspecialchars(
                                    $booking['pet_breed']
                                ) ?>

                            <?php endif; ?>


                            <?php if (!empty($booking['pet_weight'])): ?>

                                ,
                                <?= htmlspecialchars(
                                    $booking['pet_weight']
                                ) ?>
                                kg

                            <?php endif; ?>

                            )

                        </p>



                        <!-- LƯU Ý THÚ CƯNG -->

                        <?php if (!empty($booking['pet_note'])): ?>

                            <p>

                                <strong>
                                    Lưu ý thú cưng:
                                </strong>

                                <?= nl2br(
                                    htmlspecialchars(
                                        $booking['pet_note']
                                    )
                                ) ?>

                            </p>

                        <?php endif; ?>



                        <!-- GHI CHÚ KHÁCH -->

                        <?php if (!empty($booking['customer_note'])): ?>

                            <p>

                                <strong>
                                    Ghi chú lịch hẹn:
                                </strong>

                                <?= nl2br(
                                    htmlspecialchars(
                                        $booking['customer_note']
                                    )
                                ) ?>

                            </p>

                        <?php endif; ?>



                        <!-- =================================================
                             TRẠNG THÁI
                        ================================================== -->

                        <?php

                        $currentStatus =
                            (string) (
                                $booking['status']
                                ?? ''
                            );

                        ?>

                        <p>

                            Trạng thái:

                            <span
                                class="
                                    badge
                                    <?= htmlspecialchars(
                                        booking_status_class(
                                            $currentStatus,
                                            $bookingStatusClasses
                                        )
                                    ) ?>
                                "
                            >

                                <?= htmlspecialchars(
                                    booking_status_label(
                                        $currentStatus,
                                        $bookingStatusLabels
                                    )
                                ) ?>

                            </span>

                        </p>



                        <!-- GHI CHÚ SPA -->

                        <?php if (!empty($booking['owner_note'])): ?>

                            <p class="mb-0">

                                <strong>
                                    Ghi chú Spa:
                                </strong>

                                <?= nl2br(
                                    htmlspecialchars(
                                        $booking['owner_note']
                                    )
                                ) ?>

                            </p>

                        <?php endif; ?>


                    </div>

                </div>



                <!-- =====================================================
                     HỦY LỊCH
                ====================================================== -->

                <?php if (
                    ($booking['status'] ?? '')
                    === 'pending'
                ): ?>

                    <form
                        method="post"
                        action="<?= BASE_URL ?>/?url=customer/booking/cancel"
                        onsubmit="
                            return confirm(
                                'Bạn có chắc muốn hủy lịch hẹn này?'
                            );
                        "
                    >

                        <input
                            type="hidden"
                            name="_token"
                            value="<?= htmlspecialchars(
                                $_SESSION[
                                    'csrf_token'
                                ]
                                ?? ''
                            ) ?>"
                        >


                        <input
                            type="hidden"
                            name="booking_id"
                            value="<?= (int) $booking['id'] ?>"
                        >


                        <button
                            type="submit"
                            class="btn btn-outline-danger"
                        >

                            <i class="bi bi-x-circle me-1"></i>

                            Hủy lịch

                        </button>

                    </form>

                <?php endif; ?>



                <!-- =====================================================
                     LỊCH SỬ TRẠNG THÁI
                ====================================================== -->

                <h2 class="h5 mt-4">

                    Lịch sử trạng thái

                </h2>


                <?php if (!empty($statusLogs)): ?>

                    <ul class="booking-status-history">

                        <?php foreach ($statusLogs as $log): ?>

                            <?php

                            $logStatus =
                                (string) (
                                    $log['new_status']
                                    ?? ''
                                );

                            ?>

                            <li class="mb-2">

                                <strong>

                                    <?= htmlspecialchars(
                                        booking_status_label(
                                            $logStatus,
                                            $bookingStatusLabels
                                        )
                                    ) ?>

                                </strong>

                                —

                                <?= htmlspecialchars(
                                    $log['created_at']
                                    ?? ''
                                ) ?>


                                <?php if (!empty($log['note'])): ?>

                                    :

                                    <?= htmlspecialchars(
                                        $log['note']
                                    ) ?>

                                <?php endif; ?>

                            </li>

                        <?php endforeach; ?>

                    </ul>


                <?php else: ?>

                    <p class="text-muted">

                        Chưa có lịch sử thay đổi trạng thái.

                    </p>

                <?php endif; ?>


            </section>

        </div>

    </div>

</main>


<?php

require BASE_PATH
    . '/app/views/layouts/footer.php';

?>