import React, { useState, useEffect, useMemo, useRef, useCallback } from 'react';
import { initializeApp } from 'firebase/app';
import { getFirestore, collection, addDoc, onSnapshot, doc, updateDoc, deleteDoc, serverTimestamp, query, orderBy } from 'firebase/firestore';
import { getAuth, signInAnonymously, onAuthStateChanged } from 'firebase/auth';
import {
Phone, MapPin, Clock, Car, Package, ShieldCheck, Menu, X, ChevronRight,
PlaneTakeoff, Building2, CheckCircle2, Star, Users, Calendar,
ArrowRight, Zap, ChevronDown, ChevronUp, Quote, Facebook, Info,
Youtube, MessageCircle, Navigation, LayoutDashboard, Lock,
ListOrdered, LogOut, Filter, Trash2, XCircle, AlertCircle,
Search, Download, Eye, Edit3, MoreVertical, TrendingUp,
CreditCard, UserCheck, CalendarDays, FileText, Settings, Key
} from 'lucide-react';
// ============================================================================
// 1. FIREBASE CONFIGURATION & INITIALIZATION
// ============================================================================
const firebaseConfig = {
apiKey: "AIzaSyBVsiQpNl6d4R_P-iJ4KdNA0LDgjf32NzY",
authDomain: "golinh-988da.firebaseapp.com",
projectId: "golinh-988da",
storageBucket: "golinh-988da.firebasestorage.app",
messagingSenderId: "1078225831132",
appId: "1:1078225831132:web:8b5842b63edd228998e019",
measurementId: "G-GFFFNTEJ47"
};
// Khởi tạo an toàn (tránh khởi tạo lại khi HMR trong React)
const app = initializeApp(firebaseConfig);
const db = getFirestore(app);
const auth = getAuth(app);
const BOOKINGS_COLLECTION = 'bookings';
// ============================================================================
// 2. SYSTEM CONSTANTS & ASSETS
// ============================================================================
// Logo Base64 - Dán mã logo của bạn vào đây
const BASE64_LOGO = `data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAASABIAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIbGNtcwIQAABtbnRyUkdCIFhZWiAH4gADABQACQAOAB1hY3NwTVNGVAAAAABzYXdzY3RybAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWhhbmSdkQA9QICwPUB0LIGepSKOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAABxjcHJ0AAABDAAAAAx3dHB0AAABGAAAABRyWFlaAAABLAAAABRnWFlaAAABQAAAABRiWFlaAAABVAAAABRyVFJDAAABaAAAAGBnVFJDAAABaAAAAGBiVFJDAAABaAAAAGBkZXNjAAAAAAAAAAV1UkdCAAAAAAAAAAAAAAAAdGV4dAAAAABDQzAAWFlaIAAAAAAAAPNUAAEAAAABFslYWVogAAAAAAAAb6AAADjyAAADj1hZWiAAAAAAAABilgAAt4kAABjaWFlaIAAAAAAAACSgAAAPhQAAtsRjdXJ2AAAAAAAAACoAAAB8APgBnAJ1A4MEyQZOCBIKGAxiDvQRzxT2GGocLiBDJKwpai5+M+s5sz/WRldNNlR2XBdkHWyGdVZ+jYgskjacq6eMstu+mcrH12Xkd/H5////2wBDAAcHBwcHBwwHBwwRDAwMERcRERERFx4XFxcXFx4kHh4eHh4eJCQkJCQkJCQrKysrKysyMjIyMjg4ODg4ODg4ODj/2wBDAQkJCQ4NDhkNDRk7KCEoOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozv/wAARCAQABAADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD6MoooqCwooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACkpaKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAEpaKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAopKWgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigApKWigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACkpaKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigApKWigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACikpaACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACikpaACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACikpaACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoopKAFooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKSloAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKSgBaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKSlooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoopKAFooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAopKWgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAEpaKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigTDmisyXWdIi+WS6iHtvFRf2/ov/P5D/wB9Cp9pD+ZfeVyS3sbFFZX9uaP/AM/kP/fY/wAaP7b0X/n8h/77H+NHtI9ZByS7GrRWT/bui/8AP5B/32P8aP7d0X/n9g/77H+NL2sP5vxDkl2Naisn+3dF/wCfyD/vsf40v9uaL/z+Qf8AfY/xo9pDpL8Q5JdjVorI/t3RT/y+wf8AfY/xpf7c0b/n8g/77FNVIvZ/iHJLsa1FZf8Abmjf8/cH/fY/xpP7c0b/AJ/IP++x/jQ5xXUXLLsauaOKyv7c0X/n8g/77X/GnrrGlSfcuoT9HH+NHPHuHLLqjSopqtuXK8g9/WirJuOooopFBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR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hG69bHr08km43nKz+89wp1eR2Gt6rYH5ZWmQdUlOQfoTkj27e1ej6Xqlvqtv5sXBHDoeoPvXfhcdTr6Run2ZxYnA1MPrLVd0atNp1FdpyNHmPibTBZXf2qEYiuc8dg/U/n1+ornK9Z1uz+36ZNAv+sxuT/eXkfnj8q8kVlZQy9CMj6V8lm+GVKrzRVkz6jKcS6lLlluv6Q6vQfCN55tk1k5ybdsDP9xuR+RyK87rc8PXX2XV4ix+WbMR/Hkfrx+NY5VifZ11frp95rmdD2lB91r9x6xRTadX2R8lcKKKKBhRRRQAUUUUAFFFFABRRRQIKKKKBhRRRQJBRRRQMKKKKACikpaACiiigAooooAKKSigBaKKKACiiigQUUUUDCiiigAooooAKKKKACiiigAooooAKKKKACiiigTCiiigYUUUUAFFFFABRRRQAUUUUAFFFFAmFFFFAwooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAopKWgAooooAKKKKACiiigAooooAKKKKACiiigAooqCedbeGSZ+kalj9AM0dLk2vojzDxNc/adYeJfuwqsY+p5P+H4Vg1JvMjNI/wDrXJZj7k5qKvhMbN1KjqPqfcYal7OnGn2HMdqlm6DmvXNCtDZaXBA33sbm+rHJ/nXmOn2ovNRgtTyHb5h/sryf0GPxr2WvcyShbmqPfY8TO63w016hRRRXvnh3POvF975t3HYA/JEN7D1Zug/AfzrkK1tc3HXLvd/eA/DaMVk/5/Wvicym6leUn0dvuPssBTUKEEu1/vJaipaSuGUrnYkO+dXV1JV1I2sOxHP869j027W/sYbxePMUEj0PpXjNen+E8/2Ins7gf99GvoMkrt1JQ6WueHndJezjPrex01FFFfSHzoV5BrV499qcsh+4h2R+wH+J/pXrzfdP414TF/q09dozmvEzys404wXW/wCB7OS005ym91+o+iiivkz6YfWhpN62najHcH7rEJJ6FSf6dfz9azKZN/q5P90/yrpoVnCanHdMxq0lODhLZo93opq/dG7rgU6vvb3R8MkFePata/Y9Wmtxwobcv0fn+ZI/CvYa4HxhagSQX6d8xN791/qPxrzs1pc1Hmtfld/l1PSyqryVuV9dDiaCSBuiOGXlSOxHQ/nRS18bF21Pq5LSzPZr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tFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRSUtABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRSUALRRRQAUUlLQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFJQAtFFJQAtFFJQAtFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUlAC0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRSUtABRRSUALRRRQAUUlLQAUUUUAFFFFABRRRQAUUUlAC0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFACUtFFACUtFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAlLRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUlAC0UUlAC0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFJS0AFFFFABRRRQAUUUUAFFFJQAtFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFJQAtFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUlLRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAlLRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFJS0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAJS0UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFJS0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRSUtABSUtFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRSUtABRRRQAUUUUAFFFFABRRRQAUUUUAFFFJQAtFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFJQAtJS0UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUlLRQAUUUUAFFFJQAtFFFABRRRQAUUUUAFFFFABRRRQAUlLRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAlLRRQAUUUUAFJS0UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUlAC0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFJS0UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUlLQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAlLRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAJS0UUAFFFFABSUtFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRSUALRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAJS0UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFJS0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAlLRRQAUUUUAFFFFABRRRQAUUlLQAUUUUAFJS0UAFFFFABSUtFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRSUALRRRQAUUUUAFFFFABRRRQAUUUUAFFJS0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFJS0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUlAC0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAJS0UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAlLRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFJS0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUlLRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUlLRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUlAC0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUlAC0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFJS0UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFJS0UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUlLQAUUUUAFFFFABRRRQAUUUlAC0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFJS0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABSUtJQAtFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABSUtFABRRRQAUUUUAFFFFABRRRQAUUUUAJS0UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//2Q==`;
const ADMIN_CREDENTIALS = {
password: 'GOLINH@ad68'
};
const SOCIAL_LINKS = {
zalo: 'https://zalo.me/4118091588175497214',
facebook: 'https://www.facebook.com/profile.php?id=61581645212625'
};
const PRICING_DATA = [
{ route: 'Đại Đình ↔ Hà Nội', shared: '200.000', private4: '500.000', private7: '600.000' },
{ route: 'Bồ Lý ↔ Hà Nội', shared: '200.000', private4: '500.000', private7: '600.000' },
{ route: 'Tam Quan ↔ Hà Nội', shared: '150.000', private4: '450.000', private7: '550.000' },
{ route: 'Vĩnh Yên ↔ Hà Nội', shared: '150.000', private4: '450.000', private7: '550.000' },
{ route: 'Tam Dương ↔ Hà Nội', shared: '150.000', private4: '450.000', private7: '550.000' },
{ route: 'Lập Thạch ↔ Hà Nội', shared: '200.000', private4: '500.000', private7: '600.000' },
{ route: 'Sông Lô ↔ Hà Nội', shared: '250.000', private4: '550.000', private7: '650.000' },
{ route: 'Bình Xuyên ↔ Hà Nội', shared: '150.000', private4: '450.000', private7: '550.000' },
{ route: 'Phúc Yên ↔ Hà Nội', shared: '150.000', private4: '450.000', private7: '550.000' },
{ route: 'Mê Linh ↔ Hà Nội', shared: '150.000', private4: '450.000', private7: '550.000' },
{ route: 'Việt Trì ↔ Hà Nội', shared: '200.000', private4: '600.000', private7: '700.000' },
{ route: 'TT. Tam Đảo ↔ Hà Nội', shared: '350.000', private4: '700.000', private7: '800.000' },
];
const FLEET_DATA = [
{
name: 'Sedan Phổ Thông & Thương Gia',
models: 'Toyota Camry, Mazda 3, Vios 2024',
// Ảnh Sedan siêu đẹp
image: 'https://images.unsplash.com/photo-1550355291-bbee04a92027?q=80&w=2000&auto=format&fit=crop',
features: ['Điều hòa tự động 2 vùng', 'Cách âm chống ồn cao cấp', 'Ghế da đục lỗ thoáng khí', 'Cốp rộng chứa 2 vali lớn'],
ideal: 'Lựa chọn hoàn hảo cho cá nhân, cặp đôi đi công tác, sân bay.'
},
{
name: 'SUV/MPV 7 Chỗ Rộng Rãi',
models: 'Ford Everest, Toyota Fortuner, Xpander',
// Ảnh SUV siêu đẹp
image: 'https://images.unsplash.com/photo-1519641471654-76ce0107ad1b?q=80&w=2000&auto=format&fit=crop',
features: ['Không gian 7 chỗ ngồi thực dụng', 'Gầm cao vượt mọi địa hình', 'Màn hình giải trí đa phương tiện', 'Cửa gió điều hòa từng hàng ghế'],
ideal: 'Tuyệt vời cho gia đình, nhóm bạn 4-6 người và hành lý cồng kềnh.'
},
{
name: 'Limousine Dcar Đẳng Cấp',
models: 'Ford Transit Dcar 9 Chỗ VIP',
// Ảnh Nội thất Limousine siêu đẹp
image: 'https://images.unsplash.com/photo-1542282088-72c9c27ed0cd?q=80&w=2000&auto=format&fit=crop',
features: ['Ghế massage toàn thân', 'Wifi tốc độ cao & Cổng sạc 220V', 'Rèm che nắng chống UV riêng tư', 'Tủ lạnh mini trên xe'],
ideal: 'Chuyên cơ mặt đất dành cho đối tác VIP, khách du lịch nghỉ dưỡng cao cấp.'
}
];
const TESTIMONIALS = [
{ name: 'Nguyễn Tiến Dũng', role: 'Giám đốc Kinh Doanh', content: 'Giao diện đặt xe rất mượt. Dịch vụ đón trả sân bay cực kỳ đúng giờ, xe sạch sẽ và có cả nước suối lạnh. Hoàn toàn hài lòng.', rating: 5, avatar: 'D' },
{ name: 'Lê Phương Thảo', role: 'Khách hàng đi Tam Đảo', content: 'Mình book xe 7 chỗ đi Tam Đảo cuối tuần. Bác tài lái xe rất êm ái, qua những khúc cua không hề bị say. Sẽ luôn ủng hộ GOLINH.', rating: 5, avatar: 'T' },
{ name: 'Trần Thị Mai', role: 'Khách đi khám bệnh', content: 'Cô phải đi viện sớm, xe đón lúc 4h sáng đúng giờ, tài xế phụ xách đồ rất ngoan và chu đáo. Cô cảm ơn nhà xe rất nhiều.', rating: 5, avatar: 'M' },
{ name: 'Phạm Hoàng Bách', role: 'Chủ Shop Online', content: 'Mình thường gửi hàng hỏa tốc Vĩnh Yên - HN. Tốc độ giao hàng siêu nhanh chỉ 1-2 tiếng, chưa bao giờ bị móp méo hàng hóa.', rating: 5, avatar: 'B' },
{ name: 'Vũ Hải Yến', role: 'Sinh Viên', content: 'Giá sinh viên mà dịch vụ VIP. Đi xe ghép không bao giờ bị nhồi nhét, mỗi người một ghế rộng rãi có điều hòa mát mẻ.', rating: 5, avatar: 'Y' },
];
const FAQS = [
{ q: 'Xe ghép GOLINH có bắt khách dọc đường không?', a: 'Tuyệt đối KHÔNG. Phương châm của chúng tôi là "Đón tận nơi - Trả tận chốn". Lộ trình được lên sẵn để tối ưu thời gian di chuyển nhanh nhất cho khách hàng, không vòng vèo bắt khách dọc đường.' },
{ q: 'Tôi cần đặt xe trước bao lâu để có vị trí tốt?', a: 'Quý khách nên đặt trước ít nhất 2-4 tiếng. Đối với các khung giờ cao điểm, Lễ Tết hoặc chuyến đi sáng sớm tinh mơ (ra sân bay, đi khám bệnh), quý khách vui lòng đặt trước 1 ngày.' },
{ q: 'Giá gửi hàng hóa, bưu phẩm tính cước thế nào?', a: 'Phí gửi hàng hỏa tốc hai chiều chỉ từ 100.000đ. Nhân viên sẽ căn cứ vào kích thước, trọng lượng và điểm giao nhận để báo giá chính xác. Đảm bảo rẻ hơn chuyển phát nhanh truyền thống và thời gian nhận chỉ trong vài tiếng.' },
{ q: 'Chính sách vé cho trẻ em đi cùng ra sao?', a: 'Trẻ em dưới 3 tuổi ngồi chung ghế với bố mẹ sẽ được miễn phí hoàn toàn. Trẻ em cần ngồi ghế riêng sẽ tính vé như người lớn để đảm bảo không gian an toàn tuyệt đối.' },
{ q: 'Tôi có thể thanh toán bằng chuyển khoản không?', a: 'Có. Chúng tôi chấp nhận thanh toán tiền mặt trực tiếp cho tài xế hoặc chuyển khoản ngân hàng/Momo sau khi kết thúc chuyến đi an toàn.' }
];
// ============================================================================
// 3. UTILITY COMPONENTS & HELPER FUNCTIONS
// ============================================================================
// Formatter Tiền tệ
const formatVND = (amount) => {
if(!amount) return '0đ';
// Xử lý chuỗi nếu có dấu chấm sẵn
const cleanNum = amount.toString().replace(/\./g, '');
return parseInt(cleanNum).toLocaleString('vi-VN') + 'đ';
};
// Formatter Ngày tháng đẹp
const formatDateTimeStr = (isoString) => {
if (!isoString) return { date: 'N/A', time: 'N/A', full: 'Chưa xác định' };
try {
const d = new Date(isoString);
if(isNaN(d.getTime())) throw new Error("Invalid");
const time = d.toLocaleTimeString('vi-VN', {hour: '2-digit', minute:'2-digit'});
const date = d.toLocaleDateString('vi-VN', {day: '2-digit', month: '2-digit', year: 'numeric'});
return { date, time, full: `${time} - ${date}` };
} catch (e) {
return { date: 'Lỗi', time: 'Lỗi', full: 'Lỗi định dạng ngày' };
}
};
// Hàm xuất CSV
const exportToCSV = (dataList) => {
if (!dataList || dataList.length === 0) {
alert("Không có dữ liệu để xuất!");
return;
}
// Headers
const headers = ['Mã Đơn', 'Tên Khách Hàng', 'SĐT', 'Loại Dịch Vụ', 'Chi Tiết Dịch Vụ', 'Điểm Đón', 'Điểm Đến', 'Ngày Đi', 'Giờ Đi', 'Trạng Thái', 'Ghi chú Khách', 'Ghi chú Admin', 'Ngày Đặt'];
// Rows
const rows = dataList.map(item => [
item.id,
`"${item.name || ''}"`,
`"${item.phone || ''}"`,
`"${item.category || ''}"`,
`"${item.type || ''}"`,
`"${item.pickup || ''}"`,
`"${item.dropoff || ''}"`,
`"${item.date || ''}"`,
`"${item.time || ''}"`,
`"${item.status || ''}"`,
`"${(item.note || '').replace(/"/g, '""')}"`,
`"${(item.adminNote || '').replace(/"/g, '""')}"`,
`"${formatDateTimeStr(item.createdAt).full}"`
]);
const csvContent = "\uFEFF" + [headers.join(','), ...rows.map(r => r.join(','))].join('\n');
const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });
const url = URL.createObjectURL(blob);
const link = document.createElement("a");
link.setAttribute("href", url);
link.setAttribute("download", `GOLINH_Data_${new Date().toLocaleDateString('vi-VN').replace(/\//g, '-')}.csv`);
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
};
// Inject Global CSS for Advanced Animations
const GlobalStyles = () => (
);
// Animated Counter Component
const AnimatedNumber = ({ endValue, duration = 2000, suffix = "" }) => {
const [count, setCount] = useState(0);
const ref = useRef(null);
const [started, setStarted] = useState(false);
useEffect(() => {
const observer = new IntersectionObserver(([entry]) => {
if (entry.isIntersecting && !started) {
setStarted(true);
let startTimestamp = null;
const step = (timestamp) => {
if (!startTimestamp) startTimestamp = timestamp;
const progress = Math.min((timestamp - startTimestamp) / duration, 1);
// Easing function: easeOutExpo
const easeProgress = progress === 1 ? 1 : 1 - Math.pow(2, -10 * progress);
setCount(Math.floor(easeProgress * endValue));
if (progress < 1) window.requestAnimationFrame(step);
};
window.requestAnimationFrame(step);
}
}, { threshold: 0.1 });
if (ref.current) observer.observe(ref.current);
return () => observer.disconnect();
}, [endValue, duration, started]);
return {count.toLocaleString('vi-VN')}{suffix} ;
};
// ============================================================================
// 4. MAIN APP CONTAINER (ROUTER)
// ============================================================================
export default function App() {
const [user, setUser] = useState(null);
const [authChecking, setAuthChecking] = useState(true);
const [isAdminView, setIsAdminView] = useState(false);
// Database State
const [bookings, setBookings] = useState([]);
const [dbStatus, setDbStatus] = useState({ loading: true, error: null });
// Initialize Firebase Auth
useEffect(() => {
const initAuth = async () => {
try {
await signInAnonymously(auth);
} catch (error) {
console.error("Auth init failed:", error);
}
};
initAuth();
const unsubscribe = onAuthStateChanged(auth, (currentUser) => {
setUser(currentUser);
setAuthChecking(false);
});
return () => unsubscribe();
}, []);
// Sync with Firestore (Real-time Enterprise Grade)
useEffect(() => {
setDbStatus({ loading: true, error: null });
try {
// Dùng query cơ bản nhất để tránh lỗi require index của Firebase
const collRef = collection(db, BOOKINGS_COLLECTION);
const unsubscribe = onSnapshot(collRef,
(snapshot) => {
const rawData = snapshot.docs.map(doc => ({
id: doc.id,
...doc.data()
}));
// Sắp xếp tay ở Client để bypass lỗi index Firebase
const sortedData = rawData.sort((a, b) => {
const timeA = a.createdAt ? new Date(a.createdAt).getTime() : 0;
const timeB = b.createdAt ? new Date(b.createdAt).getTime() : 0;
return timeB - timeA; // Mới nhất lên đầu
});
setBookings(sortedData);
setDbStatus({ loading: false, error: null });
},
(err) => {
console.error("Firestore Listen Error:", err);
setDbStatus({
loading: false,
error: `Lỗi truy cập dữ liệu: ${err.message}. Vui lòng kiểm tra Firebase Security Rules.`
});
}
);
return () => unsubscribe();
} catch (err) {
setDbStatus({ loading: false, error: err.message });
}
}, []);
if (authChecking) {
return (
Khởi động hệ thống GOLINH...
);
}
return (
<>
{isAdminView ? (
setIsAdminView(false)}
/>
) : (
setIsAdminView(true)}
/>
)}
>
);
}
// ============================================================================
// 5. PUBLIC WEBSITE (LANDING PAGE)
// ============================================================================
function PublicWebsite({ user, openAdmin }) {
const [isScrolled, setIsScrolled] = useState(false);
const [mobileMenu, setMobileMenu] = useState(false);
// Secret Admin Login trigger (7 Clicks)
const [logoClicks, setLogoClicks] = useState(0);
const [showAuthModal, setShowAuthModal] = useState(false);
const [pwdInput, setPwdInput] = useState('');
// Scroll listener for Navbar
useEffect(() => {
const handleScroll = () => setIsScrolled(window.scrollY > 30);
window.addEventListener('scroll', handleScroll);
return () => window.removeEventListener('scroll', handleScroll);
}, []);
// Handle Logo Clicks Reset
useEffect(() => {
if (logoClicks >= 7) {
setShowAuthModal(true);
setLogoClicks(0);
}
const timer = setTimeout(() => setLogoClicks(0), 2000);
return () => clearTimeout(timer);
}, [logoClicks]);
const scrollTo = (id) => {
const el = document.getElementById(id);
if (el) {
const offset = 80;
const top = el.getBoundingClientRect().top + window.scrollY - offset;
window.scrollTo({ top, behavior: 'smooth' });
setMobileMenu(false);
}
};
const verifyAdmin = (e) => {
e.preventDefault();
if (pwdInput === ADMIN_CREDENTIALS.password) {
setShowAuthModal(false);
setPwdInput('');
openAdmin();
} else {
alert("⚠️ Mật khẩu quản trị không hợp lệ!");
setPwdInput('');
}
};
return (
{/* 5.1 ADMIN AUTH MODAL */}
{showAuthModal && (
setShowAuthModal(false)} className="absolute top-4 right-4 p-2 bg-slate-100 rounded-full text-slate-500 hover:text-red-500 transition-colors">
Truy cập Quản Trị
Hệ thống dành riêng cho Ban Giám Đốc GOLINH.
)}
{/* 5.2 ANNOUNCEMENT BAR */}
Giảm 50K cho chuyến xe khứ hồi trong ngày
Tổng đài trực 24/7 (Kể cả Lễ/Tết)
Bảo hiểm hành khách 100%
{/* 5.3 NAVBAR */}
{/* Logo */}
{ scrollTo('home'); setLogoClicks(p => p + 1); }}>
GOLINH
Xe Ghép Cao Cấp
{/* Desktop Menu */}
{['Trang chủ', 'Dịch vụ', 'Đội xe', 'Bảng giá', 'Khách hàng'].map((item, idx) => {
const ids = ['home', 'services', 'fleet', 'pricing', 'testimonials'];
return (
scrollTo(ids[idx])} className="px-5 py-2.5 rounded-full text-slate-600 font-bold text-sm hover:bg-white hover:text-orange-600 hover:shadow-sm transition-all">
{item}
)
})}
{/* CTA & Mobile Toggle */}
1900 9101
setMobileMenu(!mobileMenu)} className="lg:hidden w-10 h-10 bg-slate-100 rounded-xl flex items-center justify-center text-slate-600">
{mobileMenu ? : }
{/* Mobile Dropdown */}
{['Trang chủ', 'Dịch vụ', 'Đội xe', 'Bảng giá', 'Khách hàng'].map((item, idx) => {
const ids = ['home', 'services', 'fleet', 'pricing', 'testimonials'];
return
scrollTo(ids[idx])} className="block w-full text-left px-5 py-4 rounded-xl font-bold text-slate-700 bg-slate-50 hover:bg-orange-50 hover:text-orange-600 transition-colors">{item}
})}
{/* 5.4 HERO SECTION (Complex Layout) */}
{/* Backgrounds */}
{/* Left Content */}
Chuyên Tuyến Cao Tốc: Vĩnh Phúc ↔ Hà Nội
Đẳng Cấp Di Chuyển
Hoàn Toàn Mới
Tận hưởng không gian riêng tư, sang trọng với dàn xe đời mới 100%. GOLINH cam kết đón trả tận nơi, không chèn ép khách, mang đến hành trình an toàn và thư thái nhất.
Gọi Trực Tiếp 1900 9101
scrollTo('pricing')} className="w-full sm:w-auto bg-slate-800/80 border border-slate-700 text-white px-8 py-4 rounded-2xl font-bold text-lg backdrop-blur-md hover:bg-slate-800 transition-all flex items-center justify-center group">
Xem Bảng Giá
{/* Stats Counters */}
{/* Right Booking Form */}
{/* Custom SVG Wave bottom */}
{/* 5.5 PARTNERS LOGO STRIP */}
Đối tác & Điểm đến chiến lược
Sân Bay Nội Bài
Vinmec / Bạch Mai
Tam Đảo Resort
KCN Thăng Long
{/* 5.6 SERVICES GRID */}
Hệ Sinh Thái Dịch Vụ
Giải pháp di chuyển toàn diện cho bạn
{[
{ icon: Users, color: 'text-blue-600', bg: 'bg-blue-50', title: 'Xe Ghép Tiết Kiệm', desc: 'Chỉ từ 150.000đ. Đảm bảo mỗi khách 1 ghế chuẩn, không nhồi nhét, chạy cao tốc.' },
{ icon: Car, color: 'text-orange-600', bg: 'bg-orange-50', title: 'Bao Xe Trọn Gói', desc: 'Không gian riêng tư tuyệt đối cho gia đình, đối tác. Dừng đỗ linh hoạt theo yêu cầu.' },
{ icon: PlaneTakeoff, color: 'text-emerald-600', bg: 'bg-emerald-50', title: 'Đưa Đón Sân Bay', desc: 'Cam kết 100% đúng giờ bay. Hỗ trợ bê vác hành lý tận sảnh. Hoạt động 24/24.' },
{ icon: Package, color: 'text-purple-600', bg: 'bg-purple-50', title: 'Gửi Hàng Hỏa Tốc', desc: 'Nhận gửi bưu phẩm, tài liệu hỏa tốc 2 chiều. Nhận hàng sau 1-2 tiếng, an toàn tuyệt đối.' }
].map((srv, idx) => (
))}
{/* 5.7 FLEET SHOWCASE (The 3 Super Beautiful Images) */}
Trải nghiệm thượng lưu
Đội Hình Xe Tiêu Chuẩn 5 Sao
Được bảo dưỡng chính hãng định kỳ, vệ sinh nội thất bằng dung dịch diệt khuẩn sau mỗi chuyến đi.
{FLEET_DATA.map((car, idx) => (
{/* Image Container with Parallax Zoom */}
Premium
{/* Details Container */}
))}
{/* 5.8 CORE PRICING TABLE */}
{/* Background shapes */}
💰 MINH BẠCH - KHÔNG PHÍ NGẦM
Bảng Giá Tuyến Vĩnh Phúc ↔ Hà Nội
Mức giá áp dụng chung cho cả chiều đi và chiều về. Bao gồm chi phí xăng xe, cầu đường, bến bãi.
Lộ Trình Đưa Đón
Xe Ghép
Vé / 1 Hành khách
Bao Xe 4 Chỗ
Trọn gói 1 chiều
Bao Xe 7 Chỗ
Trọn gói 1 chiều
{PRICING_DATA.map((item, index) => (
{item.route}
{item.shared}đ
{item.private4}đ
{item.private7}đ
))}
{/* Special Services Callout */}
Dịch vụ Gửi Hàng Hỏa Tốc
Giao nhận tận tay 2 đầu Vĩnh Phúc - Hà Nội cực nhanh.
scrollTo('home')} className="bg-white text-slate-900 px-8 py-4 rounded-xl font-bold hover:bg-orange-500 hover:text-white transition-colors shadow-lg">Gửi Hàng Ngay
{/* Legal/Note block */}
Ghi chú bảng giá:
Giá trên là giá tiêu chuẩn trong giờ hành chính. Giá có thể thay đổi nhẹ (+50k đến 100k) đối với các chuyến đi sáng sớm (trước 5h), đêm muộn (sau 22h), hoặc các dịp Lễ/Tết do phụ phí bến bãi. Quý khách vui lòng gọi
1900 9101 để được nhân viên báo giá chốt cuối cùng.
{/* 5.9 TESTIMONIALS (Advanced Marquee) */}
Uy tín tạo niềm tin
Hàng Ngàn Đánh Giá 5 Sao
{/* Gradient Overlays for smooth fade effect */}
{/* x3 for smooth infinite loop */}
{[...TESTIMONIALS, ...TESTIMONIALS, ...TESTIMONIALS].map((review, idx) => (
{[...Array(review.rating)].map((_, i) => (
))}
"{review.content}"
{review.avatar}
{review.name}
{review.role}
))}
{/* 5.10 MASSIVE CTA FOOTER */}
{/* Abstract Backgrounds */}
Cần Xe Gấp? Gọi Ngay GOLINH
Hàng chục tài xế của chúng tôi đang trực sẵn tại khu vực của bạn. Chỉ 15 phút là có xe đón tận cửa.
{/* 5.11 FOOTER */}
Thương hiệu vận tải hành khách & hàng hóa uy tín số 1 tuyến Vĩnh Phúc - Hà Nội. Đẳng cấp, an toàn, tiết kiệm.
Tổng Đài 24/7
Hotline Gọi Đặt Xe:
1900 9101
Trụ sở: Phường Liên Bảo, TP. Vĩnh Yên, Tỉnh Vĩnh Phúc
Giờ phục vụ: 24h / 7 ngày
© {new Date().getFullYear()} Bản quyền thuộc về Hệ Thống Xe Ghép GOLINH. Thiết kế & Phát triển độc quyền.
{/* Floating Action Buttons */}
);
}
// ============================================================================
// 6. ADVANCED BOOKING WIDGET COMPONENT
// ============================================================================
function AdvancedBookingForm({ user }) {
const [activeTab, setActiveTab] = useState('book');
const [step, setStep] = useState(1);
const [status, setStatus] = useState('idle');
const [formData, setFormData] = useState({
type: 'Xe Ghép 4-7 Chỗ (Tiết kiệm)',
pickup: '', dropoff: '', date: '', time: '',
name: '', phone: '', note: ''
});
const handleChange = (e) => setFormData(prev => ({ ...prev, [e.target.name]: e.target.value }));
const nextStep = (e) => {
e.preventDefault();
if (!formData.pickup || !formData.dropoff || !formData.date || !formData.time) {
alert("Vui lòng điền đủ thông tin Lộ trình & Thời gian!"); return;
}
setStep(2);
};
const submitBooking = async (e) => {
e.preventDefault();
if (!formData.name || !formData.phone) {
alert("Vui lòng điền đủ Thông tin liên hệ!"); return;
}
setStatus('submitting');
try {
await addDoc(collection(db, BOOKINGS_COLLECTION), {
...formData,
category: activeTab === 'book' ? 'Chở khách' : 'Gửi hàng',
status: 'Chờ xác nhận',
adminNote: '',
createdAt: new Date().toISOString(),
serverTimestamp: serverTimestamp() // Thêm cho chắc chắn
});
setStatus('success');
setTimeout(() => {
setStatus('idle'); setStep(1);
setFormData({ type: 'Xe Ghép 4-7 Chỗ (Tiết kiệm)', pickup: '', dropoff: '', date: '', time: '', name: '', phone: '', note: '' });
}, 5000);
} catch (error) {
console.error("Lỗi khi đặt xe:", error);
setStatus('error');
}
};
return (
Đặt Xe Trực Tuyến
Thao tác nhanh, có xe ngay sau 15p
{/* Custom Tabs */}
{setActiveTab('book'); setStep(1);}}
className={`flex-1 py-3.5 px-4 rounded-xl text-sm font-black transition-all flex items-center justify-center gap-2 ${activeTab === 'book' ? 'bg-white text-orange-600 shadow-md' : 'text-slate-500 hover:text-slate-900'}`}
>
Đi Xe Ghép/Bao
{setActiveTab('send'); setStep(1);}}
className={`flex-1 py-3.5 px-4 rounded-xl text-sm font-black transition-all flex items-center justify-center gap-2 ${activeTab === 'send' ? 'bg-white text-orange-600 shadow-md' : 'text-slate-500 hover:text-slate-900'}`}
>
Gửi Hàng Hóa
);
}
// ============================================================================
// 7. ENTERPRISE ADMIN DASHBOARD (FULL & PRO VERSION)
// ============================================================================
function AdminSystem({ bookings, dbStatus, onClose }) {
const [activeTab, setActiveTab] = useState('dashboard');
const [filterStatus, setFilterStatus] = useState('all');
const [searchTerm, setSearchTerm] = useState('');
const [selectedBooking, setSelectedBooking] = useState(null); // Modal details
// --- STATE: CÀI ĐẶT HỆ THỐNG ---
const [siteSettings, setSiteSettings] = useState({
hotline: '1900 9101',
zalo: 'https://zalo.me/',
facebook: 'https://facebook.com/',
promoText: 'Giảm 50K cho chuyến xe khứ hồi trong ngày'
});
// --- HELPER FUNCTIONS ---
const formatVND = (val) => new Intl.NumberFormat('vi-VN', {style: 'currency', currency: 'VND'}).format(val || 0);
const safeDate = (isoString) => {
if (!isoString) return 'N/A';
const d = new Date(isoString);
return `${d.getHours().toString().padStart(2, '0')}:${d.getMinutes().toString().padStart(2, '0')} - ${d.toLocaleDateString('vi-VN')}`;
};
// --- LOGIC: KHÁCH HÀNG THÂN THIẾT ---
const customersList = useMemo(() => {
const map = {};
bookings.forEach(b => {
if (!b.phone) return;
if (!map[b.phone]) {
map[b.phone] = { name: b.name, phone: b.phone, totalBookings: 0, lastTrip: b.createdAt };
}
map[b.phone].totalBookings += 1;
if (new Date(b.createdAt) > new Date(map[b.phone].lastTrip)) {
map[b.phone].lastTrip = b.createdAt;
}
});
return Object.values(map).sort((a, b) => b.totalBookings - a.totalBookings);
}, [bookings]);
// --- LOGIC: THỐNG KÊ DASHBOARD ---
const stats = useMemo(() => {
const today = new Date().toLocaleDateString('vi-VN');
let summary = { total: bookings.length, pending: 0, confirmed: 0, completed: 0, cancelled: 0, today: 0, estRevenue: 0 };
bookings.forEach(b => {
if (b.status === 'Chờ xác nhận') summary.pending++;
if (b.status === 'Đã xác nhận') summary.confirmed++;
if (b.status === 'Hoàn thành') {
summary.completed++;
summary.estRevenue += 150000; // Doanh thu giả định 150k/chuyến
}
if (b.status === 'Đã hủy') summary.cancelled++;
const bDate = b.createdAt ? new Date(b.createdAt).toLocaleDateString('vi-VN') : '';
if (bDate === today) summary.today++;
});
return summary;
}, [bookings]);
// --- LOGIC: BỘ LỌC TÌM KIẾM ---
const filteredData = useMemo(() => {
return bookings.filter(b => {
const matchStatus = filterStatus === 'all' || b.status === filterStatus;
const term = searchTerm.toLowerCase();
const matchSearch = term === '' ||
(b.name && b.name.toLowerCase().includes(term)) ||
(b.phone && b.phone.includes(term)) ||
(b.pickup && b.pickup.toLowerCase().includes(term));
return matchStatus && matchSearch;
});
}, [bookings, filterStatus, searchTerm]);
// --- ACTIONS ---
const handleUpdateStatus = async (id, newStatus) => {
try {
await updateDoc(doc(db, BOOKINGS_COLLECTION, id), {
status: newStatus,
updatedAt: new Date().toISOString()
});
if(selectedBooking && selectedBooking.id === id) {
setSelectedBooking(prev => ({...prev, status: newStatus}));
}
}
catch (error) { alert("Lỗi khi cập nhật trên máy chủ!"); }
};
const handleDelete = async (id) => {
if(!window.confirm("🔴 CẢNH BÁO: Xóa dữ liệu không thể khôi phục. Tiếp tục?")) return;
try {
await deleteDoc(doc(db, BOOKINGS_COLLECTION, id));
setSelectedBooking(null);
}
catch (error) { alert("Lỗi khi xóa!"); }
};
const saveAdminNote = async (id, noteStr) => {
try {
await updateDoc(doc(db, BOOKINGS_COLLECTION, id), { adminNote: noteStr });
// FIX: Cập nhật state ngay lập tức để giao diện hiển thị ghi chú mới
if (selectedBooking && selectedBooking.id === id) {
setSelectedBooking(prev => ({ ...prev, adminNote: noteStr }));
}
alert("✅ Đã lưu ghi chú nội bộ!");
} catch (e) {
alert("❌ Lỗi lưu ghi chú!");
}
};
const getStatusStyle = (status) => {
switch(status) {
case 'Chờ xác nhận': return 'bg-yellow-100 text-yellow-800 border-yellow-200';
case 'Đã xác nhận': return 'bg-blue-100 text-blue-800 border-blue-200';
case 'Hoàn thành': return 'bg-emerald-100 text-emerald-800 border-emerald-200';
case 'Đã hủy': return 'bg-rose-100 text-rose-800 border-rose-200';
default: return 'bg-slate-100 text-slate-800';
}
};
return (
{/* 7.1 ADMIN SIDEBAR */}
{/* 7.2 MAIN ADMIN CONTENT */}
{/* Mobile Header */}
{/* Global Error Banner */}
{dbStatus && dbStatus.error && (
Lỗi Kết Nối Cơ Sở Dữ Liệu
{dbStatus.error}
)}
{/* Content Area */}
{/* ============================================================== */}
{/* TAB 1: DASHBOARD */}
{/* ============================================================== */}
{activeTab === 'dashboard' && (
Tổng Quan Hệ Thống
Báo cáo hiệu suất theo thời gian thực.
Hôm nay: {new Date().toLocaleDateString('vi-VN')}
{/* Top Stats Cards */}
Tổng Đơn Đặt
{stats.total}
+{stats.today} đơn hôm nay
Đang Chờ Xử Lý
{stats.pending}
Cần liên hệ xác nhận gấp
Đã Hoàn Thành
{stats.completed}
Khách đã đi an toàn
Doanh Thu Tạm Tính
{formatVND(stats.estRevenue)}
Dựa trên đơn hoàn thành (150k/đơn)
{/* Complex Section: Charts & Urgent List */}
{/* Chart */}
Tần Suất Đặt Xe 7 Ngày Qua
{[30, 45, 20, 60, 80, 50, 95].map((val, i) => (
))}
{/* Urgent Pending List */}
Cần Xử Lý Gấp
{stats.pending}
{bookings.filter(b => b.status === 'Chờ xác nhận').length === 0 ? (
Tuyệt vời! Không có đơn tồn đọng.
) : (
bookings.filter(b => b.status === 'Chờ xác nhận').slice(0, 8).map(b => (
${b.dropoff}`}>
{b.pickup}
{b.dropoff}
handleUpdateStatus(b.id, 'Đã xác nhận')} className="flex-1 py-1.5 bg-emerald-50 text-emerald-700 font-bold rounded-md text-xs hover:bg-emerald-100 transition-colors border border-emerald-200/50">Nhận Đơn
setSelectedBooking(b)} className="py-1.5 px-3 bg-slate-100 text-slate-600 font-bold rounded-md text-xs hover:bg-slate-200 transition-colors">
))
)}
)}
{/* ============================================================== */}
{/* TAB 2: BOOKING MANAGEMENT */}
{/* ============================================================== */}
{activeTab === 'bookings' && (
{/* Header Controls */}
Quản Lý Đơn Đặt Xe
Tìm kiếm, lọc và xuất dữ liệu chuyến đi.
{/* Data Table */}
{dbStatus && dbStatus.loading ? (
) : (
STT
Khách Hàng
Lộ Trình
Thời Gian Đón
Trạng Thái
Thao Tác
{filteredData.length === 0 ? (
Không tìm thấy bản ghi nào khớp với điều kiện.
) : (
filteredData.map((booking, index) => (
{index + 1}
{booking.name}
{booking.phone}
Tạo: {safeDate(booking.createdAt)}
{booking.pickup}
{booking.dropoff}
{booking.category}
{booking.type}
{booking.date}
|
{booking.time}
{booking.status === 'Chờ xác nhận' && }
{booking.status === 'Đã xác nhận' && }
{booking.status === 'Hoàn thành' && }
{booking.status}
setSelectedBooking(booking)} className="px-3 py-1.5 bg-white border border-slate-200 text-slate-600 font-bold rounded-lg text-xs hover:bg-slate-50 hover:text-blue-600 hover:border-blue-200 transition-all flex items-center shadow-sm">
Chi tiết
handleUpdateStatus(booking.id, e.target.value)}
className="bg-slate-900 text-white font-bold text-xs rounded-lg px-2 py-1.5 outline-none hover:bg-slate-800 cursor-pointer shadow-sm appearance-none text-center"
>
Chờ
Nhận
Xong
Hủy
))
)}
)}
Đang hiển thị {filteredData.length} / {bookings.length} bản ghi
)}
{/* ============================================================== */}
{/* TAB 3: CUSTOMERS (TÍNH NĂNG MỚI MỞ KHÓA) */}
{/* ============================================================== */}
{activeTab === 'customers' && (
Khách Hàng Thân Thiết
Hệ thống tự động phân loại dựa trên số điện thoại đặt xe.
Họ & Tên
Số Điện Thoại
Tổng Số Chuyến
Chuyến Gần Nhất
Phân Hạng
{customersList.map((c, i) => (
{c.name}
{c.phone}
{c.totalBookings}
{safeDate(c.lastTrip)}
= 3 ? 'bg-orange-100 text-orange-600 border-orange-200 shadow-sm' : 'bg-slate-100 text-slate-500 border-slate-200'}`}>
{c.totalBookings >= 3 ? 'VIP' : 'Thành Viên'}
))}
)}
{/* ============================================================== */}
{/* TAB 4: SETTINGS (TÍNH NĂNG MỚI MỞ KHÓA) */}
{/* ============================================================== */}
{activeTab === 'settings' && (
Cài Đặt Hệ Thống
Thay đổi thông tin liên hệ và hiển thị trên website.
alert("✅ Hệ thống đã tiếp nhận yêu cầu thay đổi cài đặt!")} className="w-full bg-slate-900 text-white py-4 rounded-2xl font-black text-lg hover:bg-orange-600 transition-all shadow-xl shadow-slate-900/10">
Lưu Thay Đổi Hệ Thống
)}
{/* 7.3 BOOKING DETAIL MODAL */}
{selectedBooking && (
{/* Modal Header */}
{selectedBooking.name.charAt(0)}
{selectedBooking.name}
{selectedBooking.phone}
{selectedBooking.status}
setSelectedBooking(null)} className="w-10 h-10 bg-white border border-slate-200 rounded-xl flex items-center justify-center text-slate-500 hover:bg-slate-100 transition-colors shadow-sm">
{/* Modal Body */}
{/* Info Column */}
Lộ trình chi tiết
A
Đón tại
{selectedBooking.pickup}
B
Trả tại
{selectedBooking.dropoff}
Ngày Đi
{selectedBooking.date}
Giờ Đón
{selectedBooking.time}
Dịch Vụ
{selectedBooking.type}
Phân loại: {selectedBooking.category}
{/* Notes Column */}
Khách hàng nhắn gửi
{selectedBooking.note ? `"${selectedBooking.note}"` : Không có ghi chú nào từ khách hàng. }
{/* Admin Private Note System */}
Ghi Chú Của Quản Trị Viên (Bí mật)
{
e.preventDefault();
saveAdminNote(selectedBooking.id, e.target.adminNote.value);
}}>
Lưu Ghi Chú Nội Bộ
Mã hệ thống: {selectedBooking.id}
{/* Modal Footer / Actions */}
handleUpdateStatus(selectedBooking.id, 'Đã xác nhận')} className="flex-1 sm:flex-none px-6 py-3 bg-blue-600 text-white font-bold rounded-xl hover:bg-blue-700 transition-colors shadow-md">Nhận Đơn
handleUpdateStatus(selectedBooking.id, 'Hoàn thành')} className="flex-1 sm:flex-none px-6 py-3 bg-emerald-500 text-white font-bold rounded-xl hover:bg-emerald-600 transition-colors shadow-md">Hoàn Thành
handleUpdateStatus(selectedBooking.id, 'Đã hủy')} className="flex-1 sm:flex-none px-6 py-3 bg-slate-200 text-slate-700 font-bold rounded-xl hover:bg-slate-300 transition-colors">Hủy Đơn
handleDelete(selectedBooking.id)} className="px-4 py-3 bg-rose-100 text-rose-600 rounded-xl hover:bg-rose-200 transition-colors" title="Xóa vĩnh viễn">
)}
);
}