diff --git a/config/vhost-parkerslingshot/vhost.conf b/config/vhost-parkerslingshot/vhost.conf
new file mode 100755
index 0000000..dcad4de
--- /dev/null
+++ b/config/vhost-parkerslingshot/vhost.conf
@@ -0,0 +1,91 @@
+docRoot /home/epictravelexpeditions.com/parkerslingshot
+vhDomain $VH_NAME
+vhAliases www.$VH_NAME
+adminEmails admin@epictravelexpeditions.com
+enableGzip 1
+enableIpGeo 1
+
+index {
+ useServer 0
+ indexFiles index.php, index.html
+}
+
+errorlog $VH_ROOT/logs/epictravelexpeditions.com.error_log {
+ useServer 0
+ logLevel WARN
+ rollingSize 10M
+}
+
+accesslog $VH_ROOT/logs/epictravelexpeditions.com.access_log {
+ useServer 0
+ logFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i""
+ logHeaders 5
+ rollingSize 10M
+ keepDays 10
+ compressArchive 1
+}
+
+phpIniOverride {
+
+}
+
+module cache {
+ storagePath /usr/local/lsws/cachedata/$VH_NAME
+}
+
+scripthandler {
+ add lsapi:epict63871534 php
+}
+
+extprocessor epict63871534 {
+ type lsapi
+ address UDS://tmp/lshttpd/epict63871534.sock
+ maxConns 10
+ env LSAPI_CHILDREN=10
+ initTimeout 60
+ retryTimeout 0
+ persistConn 1
+ pcKeepAliveTimeout 1
+ respBuffer 0
+ autoStart 1
+ path /usr/local/lsws/lsphp85/bin/lsphp
+ extUser epict6387
+ extGroup epict6387
+ memSoftLimit 1024M
+ memHardLimit 1024M
+ procSoftLimit 400
+ procHardLimit 500
+}
+
+rewrite {
+ enable 1
+ autoLoadHtaccess 1
+}
+
+context /.well-known/acme-challenge {
+ location /usr/local/lsws/Example/html/.well-known/acme-challenge
+ allowBrowse 1
+
+ rewrite {
+ enable 0
+ }
+ addDefaultCharset off
+
+ phpIniOverride {
+
+ }
+}
+
+
+vhssl {
+ keyFile /etc/letsencrypt/live/parkerslingshot.epictravelexpeditions.com/privkey.pem
+ certFile /etc/letsencrypt/live/parkerslingshot.epictravelexpeditions.com/fullchain.pem
+ certChain 1
+ sslProtocol 24
+ enableECDHE 1
+ renegProtection 1
+ sslSessionCache 1
+ enableSpdy 15
+ enableStapling 1
+ ocspRespMaxAge 86400
+}
diff --git a/config/vhost-parkerslingshot/vhost.conf.txt b/config/vhost-parkerslingshot/vhost.conf.txt
new file mode 100755
index 0000000..c85a3fe
--- /dev/null
+++ b/config/vhost-parkerslingshot/vhost.conf.txt
@@ -0,0 +1,85 @@
+enablegzip 1
+docroot /home/epictravelexpeditions.com/parkerslingshot
+vhdomain $VH_NAME
+phpinioverride
+vhaliases www.$VH_NAME
+enableipgeo 1
+adminemails admin@epictravelexpeditions.com
+
+errorlog $VH_ROOT/logs/epictravelexpeditions.com.error_log {
+ rollingsize 10M
+ loglevel WARN
+ useserver 0
+}
+
+rewrite {
+ autoloadhtaccess 1
+ enable 1
+}
+
+scripthandler {
+ add lsapi:epict63871534 php
+}
+
+extprocessor epict63871534 {
+ extgroup epict6387
+ memsoftlimit 1024M
+ autostart 1
+ prochardlimit 500
+ address UDS://tmp/lshttpd/epict63871534.sock
+ maxconns 10
+ memhardlimit 1024M
+ procsoftlimit 400
+ inittimeout 60
+ retrytimeout 0
+ persistconn 1
+ pckeepalivetimeout 1
+ respbuffer 0
+ path /usr/local/lsws/lsphp85/bin/lsphp
+ extuser epict6387
+ type lsapi
+ env LSAPI_CHILDREN=10
+}
+
+context /.well-known/acme-challenge {
+ location /usr/local/lsws/Example/html/.well-known/acme-challenge
+ adddefaultcharset off
+ phpinioverride
+ allowbrowse 1
+
+ rewrite {
+ enable 0
+ }
+}
+
+vhssl {
+ certchain 1
+ sslprotocol 24
+ enableecdhe 1
+ keyfile /etc/letsencrypt/live/parkerslingshot.epictravelexpeditions.com/privkey.pem
+ certfile /etc/letsencrypt/live/parkerslingshot.epictravelexpeditions.com/fullchain.pem
+ enablestapling 1
+ ocsprespmaxage 86400
+ renegprotection 1
+ sslsessioncache 1
+ enablespdy 15
+}
+
+module cache {
+ unknownkeywords storagepath /usr/local/lsws/cachedata/$VH_NAME
+ param storagepath /usr/local/lsws/cachedata/$VH_NAME
+}
+
+index {
+ indexfiles index.php, index.html
+ useserver 0
+}
+
+accesslog $VH_ROOT/logs/epictravelexpeditions.com.access_log {
+ compressarchive 1
+ logformat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i""
+ rollingsize 10M
+ keepdays 10
+ useserver 0
+ logheaders 5
+}
diff --git a/config/vhost-parkerslingshot/vhost.conf0 b/config/vhost-parkerslingshot/vhost.conf0
new file mode 100755
index 0000000..dcad4de
--- /dev/null
+++ b/config/vhost-parkerslingshot/vhost.conf0
@@ -0,0 +1,91 @@
+docRoot /home/epictravelexpeditions.com/parkerslingshot
+vhDomain $VH_NAME
+vhAliases www.$VH_NAME
+adminEmails admin@epictravelexpeditions.com
+enableGzip 1
+enableIpGeo 1
+
+index {
+ useServer 0
+ indexFiles index.php, index.html
+}
+
+errorlog $VH_ROOT/logs/epictravelexpeditions.com.error_log {
+ useServer 0
+ logLevel WARN
+ rollingSize 10M
+}
+
+accesslog $VH_ROOT/logs/epictravelexpeditions.com.access_log {
+ useServer 0
+ logFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i""
+ logHeaders 5
+ rollingSize 10M
+ keepDays 10
+ compressArchive 1
+}
+
+phpIniOverride {
+
+}
+
+module cache {
+ storagePath /usr/local/lsws/cachedata/$VH_NAME
+}
+
+scripthandler {
+ add lsapi:epict63871534 php
+}
+
+extprocessor epict63871534 {
+ type lsapi
+ address UDS://tmp/lshttpd/epict63871534.sock
+ maxConns 10
+ env LSAPI_CHILDREN=10
+ initTimeout 60
+ retryTimeout 0
+ persistConn 1
+ pcKeepAliveTimeout 1
+ respBuffer 0
+ autoStart 1
+ path /usr/local/lsws/lsphp85/bin/lsphp
+ extUser epict6387
+ extGroup epict6387
+ memSoftLimit 1024M
+ memHardLimit 1024M
+ procSoftLimit 400
+ procHardLimit 500
+}
+
+rewrite {
+ enable 1
+ autoLoadHtaccess 1
+}
+
+context /.well-known/acme-challenge {
+ location /usr/local/lsws/Example/html/.well-known/acme-challenge
+ allowBrowse 1
+
+ rewrite {
+ enable 0
+ }
+ addDefaultCharset off
+
+ phpIniOverride {
+
+ }
+}
+
+
+vhssl {
+ keyFile /etc/letsencrypt/live/parkerslingshot.epictravelexpeditions.com/privkey.pem
+ certFile /etc/letsencrypt/live/parkerslingshot.epictravelexpeditions.com/fullchain.pem
+ certChain 1
+ sslProtocol 24
+ enableECDHE 1
+ renegProtection 1
+ sslSessionCache 1
+ enableSpdy 15
+ enableStapling 1
+ ocspRespMaxAge 86400
+}
diff --git a/config/vhost-parkerslingshot/vhost.conf0,v b/config/vhost-parkerslingshot/vhost.conf0,v
new file mode 100755
index 0000000..7f8900c
--- /dev/null
+++ b/config/vhost-parkerslingshot/vhost.conf0,v
@@ -0,0 +1,130 @@
+head 1.2;
+access;
+symbols;
+locks
+ root:1.2; strict;
+comment @# @;
+
+
+1.2
+date 2026.05.17.04.47.56; author root; state Exp;
+branches;
+next 1.1;
+
+1.1
+date 2026.05.17.04.47.43; author root; state Exp;
+branches;
+next ;
+
+
+desc
+@/usr/local/lsws/conf/vhosts/parkerslingshot.epictravelexpeditions.com/vhost.conf0
+@
+
+
+1.2
+log
+@Update
+@
+text
+@docRoot /home/epictravelexpeditions.com/parkerslingshot
+vhDomain $VH_NAME
+vhAliases www.$VH_NAME
+adminEmails admin@@epictravelexpeditions.com
+enableGzip 1
+enableIpGeo 1
+
+index {
+ useServer 0
+ indexFiles index.php, index.html
+}
+
+errorlog $VH_ROOT/logs/epictravelexpeditions.com.error_log {
+ useServer 0
+ logLevel WARN
+ rollingSize 10M
+}
+
+accesslog $VH_ROOT/logs/epictravelexpeditions.com.access_log {
+ useServer 0
+ logFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i""
+ logHeaders 5
+ rollingSize 10M
+ keepDays 10
+ compressArchive 1
+}
+
+phpIniOverride {
+
+}
+
+module cache {
+ storagePath /usr/local/lsws/cachedata/$VH_NAME
+}
+
+scripthandler {
+ add lsapi:epict63871534 php
+}
+
+extprocessor epict63871534 {
+ type lsapi
+ address UDS://tmp/lshttpd/epict63871534.sock
+ maxConns 10
+ env LSAPI_CHILDREN=10
+ initTimeout 60
+ retryTimeout 0
+ persistConn 1
+ pcKeepAliveTimeout 1
+ respBuffer 0
+ autoStart 1
+ path /usr/local/lsws/lsphp85/bin/lsphp
+ extUser epict6387
+ extGroup epict6387
+ memSoftLimit 1024M
+ memHardLimit 1024M
+ procSoftLimit 400
+ procHardLimit 500
+}
+
+rewrite {
+ enable 1
+ autoLoadHtaccess 1
+}
+
+context /.well-known/acme-challenge {
+ location /usr/local/lsws/Example/html/.well-known/acme-challenge
+ allowBrowse 1
+
+ rewrite {
+ enable 0
+ }
+ addDefaultCharset off
+
+ phpIniOverride {
+
+ }
+}
+
+
+vhssl {
+ keyFile /etc/letsencrypt/live/parkerslingshot.epictravelexpeditions.com/privkey.pem
+ certFile /etc/letsencrypt/live/parkerslingshot.epictravelexpeditions.com/fullchain.pem
+ certChain 1
+ sslProtocol 24
+ enableECDHE 1
+ renegProtection 1
+ sslSessionCache 1
+ enableSpdy 15
+ enableStapling 1
+ ocspRespMaxAge 86400
+}
+@
+
+
+1.1
+log
+@Update
+@
+text
+@d79 13
+@
diff --git a/config/vhost/vhost.conf b/config/vhost/vhost.conf
new file mode 100755
index 0000000..1e73e9d
--- /dev/null
+++ b/config/vhost/vhost.conf
@@ -0,0 +1,95 @@
+docRoot $VH_ROOT/public_html
+vhDomain $VH_NAME
+vhAliases www.$VH_NAME
+adminEmails admin@epictravelexpeditions.com
+enableGzip 1
+enableIpGeo 1
+
+index {
+ useServer 0
+ indexFiles index.php, index.html
+}
+
+errorlog $VH_ROOT/logs/$VH_NAME.error_log {
+ useServer 0
+ logLevel WARN
+ rollingSize 10M
+}
+
+accesslog $VH_ROOT/logs/$VH_NAME.access_log {
+ useServer 0
+ logFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i""
+ logHeaders 5
+ rollingSize 10M
+ keepDays 10
+ compressArchive 1
+}
+
+scripthandler {
+ add lsapi:epict6387 php
+}
+
+extprocessor epict6387 {
+ type lsapi
+ address UDS://tmp/lshttpd/epict6387.sock
+ maxConns 10
+ env LSAPI_CHILDREN=10
+ initTimeout 600
+ retryTimeout 0
+ persistConn 1
+ pcKeepAliveTimeout 1
+ respBuffer 0
+ autoStart 1
+ path /usr/local/lsws/lsphp85/bin/lsphp
+ extUser epict6387
+ extGroup epict6387
+ memSoftLimit 1024M
+ memHardLimit 1024M
+ procSoftLimit 400
+ procHardLimit 500
+}
+
+phpIniOverride {
+
+}
+
+module cache {
+ storagePath /usr/local/lsws/cachedata/$VH_NAME
+}
+
+rewrite {
+ enable 1
+ autoLoadHtaccess 1
+}
+
+context /.well-known/acme-challenge {
+ location /usr/local/lsws/Example/html/.well-known/acme-challenge
+ allowBrowse 1
+
+ rewrite {
+ enable 0
+ }
+ addDefaultCharset off
+
+ phpIniOverride {
+
+ }
+}
+
+
+vhssl {
+ keyFile /etc/letsencrypt/live/epictravelexpeditions.com/privkey.pem
+ certFile /etc/letsencrypt/live/epictravelexpeditions.com/fullchain.pem
+ certChain 1
+ sslProtocol 24
+ enableECDHE 1
+ renegProtection 1
+ sslSessionCache 1
+ enableSpdy 15
+ enableStapling 1
+ ocspRespMaxAge 86400
+}
+
+ AllowOverride All
+ Require all granted
+
\ No newline at end of file
diff --git a/config/vhost/vhost.conf.txt b/config/vhost/vhost.conf.txt
new file mode 100755
index 0000000..d7fe048
--- /dev/null
+++ b/config/vhost/vhost.conf.txt
@@ -0,0 +1,86 @@
+vhdomain $VH_NAME
+vhaliases www.$VH_NAME
+enableipgeo 1
+enablegzip 1
+docroot $VH_ROOT/public_html
+phpinioverride
+allowoverride All
+adminemails admin@epictravelexpeditions.com
+
+extprocessor epict6387 {
+ pckeepalivetimeout 1
+ respbuffer 0
+ memsoftlimit 1024M
+ memhardlimit 1024M
+ env LSAPI_CHILDREN=10
+ inittimeout 600
+ extuser epict6387
+ extgroup epict6387
+ type lsapi
+ address UDS://tmp/lshttpd/epict6387.sock
+ maxconns 10
+ prochardlimit 500
+ retrytimeout 0
+ persistconn 1
+ autostart 1
+ path /usr/local/lsws/lsphp85/bin/lsphp
+ procsoftlimit 400
+}
+
+context /.well-known/acme-challenge {
+ adddefaultcharset off
+ phpinioverride
+ location /usr/local/lsws/Example/html/.well-known/acme-challenge
+ allowbrowse 1
+
+ rewrite {
+ enable 0
+ }
+}
+
+rewrite {
+ enable 1
+ autoloadhtaccess 1
+}
+
+module cache {
+ unknownkeywords storagepath /usr/local/lsws/cachedata/$VH_NAME
+ param storagepath /usr/local/lsws/cachedata/$VH_NAME
+}
+
+accesslog $VH_ROOT/logs/$VH_NAME.access_log {
+ rollingsize 10M
+ keepdays 10
+ compressarchive 1
+ logformat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i""
+ useserver 0
+ logheaders 5
+}
+
+errorlog $VH_ROOT/logs/$VH_NAME.error_log {
+ useserver 0
+ rollingsize 10M
+ loglevel WARN
+}
+
+scripthandler {
+ add lsapi:epict6387 php
+}
+
+index {
+ indexfiles index.php, index.html
+ useserver 0
+}
+
+vhssl {
+ certchain 1
+ sslprotocol 24
+ enableecdhe 1
+ renegprotection 1
+ sslsessioncache 1
+ enablespdy 15
+ enablestapling 1
+ ocsprespmaxage 86400
+ keyfile /etc/letsencrypt/live/epictravelexpeditions.com/privkey.pem
+ certfile /etc/letsencrypt/live/epictravelexpeditions.com/fullchain.pem
+}
diff --git a/config/vhost/vhost.conf0 b/config/vhost/vhost.conf0
new file mode 100755
index 0000000..1e73e9d
--- /dev/null
+++ b/config/vhost/vhost.conf0
@@ -0,0 +1,95 @@
+docRoot $VH_ROOT/public_html
+vhDomain $VH_NAME
+vhAliases www.$VH_NAME
+adminEmails admin@epictravelexpeditions.com
+enableGzip 1
+enableIpGeo 1
+
+index {
+ useServer 0
+ indexFiles index.php, index.html
+}
+
+errorlog $VH_ROOT/logs/$VH_NAME.error_log {
+ useServer 0
+ logLevel WARN
+ rollingSize 10M
+}
+
+accesslog $VH_ROOT/logs/$VH_NAME.access_log {
+ useServer 0
+ logFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i""
+ logHeaders 5
+ rollingSize 10M
+ keepDays 10
+ compressArchive 1
+}
+
+scripthandler {
+ add lsapi:epict6387 php
+}
+
+extprocessor epict6387 {
+ type lsapi
+ address UDS://tmp/lshttpd/epict6387.sock
+ maxConns 10
+ env LSAPI_CHILDREN=10
+ initTimeout 600
+ retryTimeout 0
+ persistConn 1
+ pcKeepAliveTimeout 1
+ respBuffer 0
+ autoStart 1
+ path /usr/local/lsws/lsphp85/bin/lsphp
+ extUser epict6387
+ extGroup epict6387
+ memSoftLimit 1024M
+ memHardLimit 1024M
+ procSoftLimit 400
+ procHardLimit 500
+}
+
+phpIniOverride {
+
+}
+
+module cache {
+ storagePath /usr/local/lsws/cachedata/$VH_NAME
+}
+
+rewrite {
+ enable 1
+ autoLoadHtaccess 1
+}
+
+context /.well-known/acme-challenge {
+ location /usr/local/lsws/Example/html/.well-known/acme-challenge
+ allowBrowse 1
+
+ rewrite {
+ enable 0
+ }
+ addDefaultCharset off
+
+ phpIniOverride {
+
+ }
+}
+
+
+vhssl {
+ keyFile /etc/letsencrypt/live/epictravelexpeditions.com/privkey.pem
+ certFile /etc/letsencrypt/live/epictravelexpeditions.com/fullchain.pem
+ certChain 1
+ sslProtocol 24
+ enableECDHE 1
+ renegProtection 1
+ sslSessionCache 1
+ enableSpdy 15
+ enableStapling 1
+ ocspRespMaxAge 86400
+}
+
+ AllowOverride All
+ Require all granted
+
\ No newline at end of file
diff --git a/config/vhost/vhost.conf0,v b/config/vhost/vhost.conf0,v
new file mode 100755
index 0000000..4c3bd44
--- /dev/null
+++ b/config/vhost/vhost.conf0,v
@@ -0,0 +1,147 @@
+head 1.3;
+access;
+symbols;
+locks
+ root:1.3; strict;
+comment @# @;
+
+
+1.3
+date 2026.05.15.22.32.23; author root; state Exp;
+branches;
+next 1.2;
+
+1.2
+date 2026.05.15.20.10.31; author root; state Exp;
+branches;
+next 1.1;
+
+1.1
+date 2026.05.15.20.10.01; author root; state Exp;
+branches;
+next ;
+
+
+desc
+@/usr/local/lsws/conf/vhosts/epictravelexpeditions.com/vhost.conf0
+@
+
+
+1.3
+log
+@Update
+@
+text
+@docRoot $VH_ROOT/public_html
+vhDomain $VH_NAME
+vhAliases www.$VH_NAME
+adminEmails admin@@epictravelexpeditions.com
+enableGzip 1
+enableIpGeo 1
+
+index {
+ useServer 0
+ indexFiles index.php, index.html
+}
+
+errorlog $VH_ROOT/logs/$VH_NAME.error_log {
+ useServer 0
+ logLevel WARN
+ rollingSize 10M
+}
+
+accesslog $VH_ROOT/logs/$VH_NAME.access_log {
+ useServer 0
+ logFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i""
+ logHeaders 5
+ rollingSize 10M
+ keepDays 10
+ compressArchive 1
+}
+
+scripthandler {
+ add lsapi:epict6387 php
+}
+
+extprocessor epict6387 {
+ type lsapi
+ address UDS://tmp/lshttpd/epict6387.sock
+ maxConns 10
+ env LSAPI_CHILDREN=10
+ initTimeout 600
+ retryTimeout 0
+ persistConn 1
+ pcKeepAliveTimeout 1
+ respBuffer 0
+ autoStart 1
+ path /usr/local/lsws/lsphp85/bin/lsphp
+ extUser epict6387
+ extGroup epict6387
+ memSoftLimit 1024M
+ memHardLimit 1024M
+ procSoftLimit 400
+ procHardLimit 500
+}
+
+phpIniOverride {
+
+}
+
+module cache {
+ storagePath /usr/local/lsws/cachedata/$VH_NAME
+}
+
+rewrite {
+ enable 1
+ autoLoadHtaccess 1
+}
+
+context /.well-known/acme-challenge {
+ location /usr/local/lsws/Example/html/.well-known/acme-challenge
+ allowBrowse 1
+
+ rewrite {
+ enable 0
+ }
+ addDefaultCharset off
+
+ phpIniOverride {
+
+ }
+}
+
+
+vhssl {
+ keyFile /etc/letsencrypt/live/epictravelexpeditions.com/privkey.pem
+ certFile /etc/letsencrypt/live/epictravelexpeditions.com/fullchain.pem
+ certChain 1
+ sslProtocol 24
+ enableECDHE 1
+ renegProtection 1
+ sslSessionCache 1
+ enableSpdy 15
+ enableStapling 1
+ ocspRespMaxAge 86400
+}
+
+ AllowOverride All
+ Require all granted
+@
+
+
+1.2
+log
+@Update
+@
+text
+@d92 4
+@
+
+
+1.1
+log
+@Update
+@
+text
+@d79 13
+@
diff --git a/db/schema.sql b/db/schema.sql
new file mode 100644
index 0000000..062b909
--- /dev/null
+++ b/db/schema.sql
@@ -0,0 +1,123 @@
+/*M!999999\- enable the sandbox mode */
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8mb4 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+DROP TABLE IF EXISTS `admin_users`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8mb4 */;
+CREATE TABLE `admin_users` (
+ `id` varchar(36) NOT NULL,
+ `email` varchar(255) NOT NULL,
+ `password_hash` varchar(255) NOT NULL,
+ `created_at` datetime NOT NULL DEFAULT current_timestamp(),
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `email` (`email`),
+ KEY `idx_email` (`email`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+DROP TABLE IF EXISTS `contacts`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8mb4 */;
+CREATE TABLE `contacts` (
+ `id` varchar(36) NOT NULL,
+ `name` varchar(255) NOT NULL,
+ `email` varchar(255) NOT NULL,
+ `message` text NOT NULL,
+ `created_at` datetime NOT NULL DEFAULT current_timestamp(),
+ PRIMARY KEY (`id`),
+ KEY `idx_created_at` (`created_at`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+DROP TABLE IF EXISTS `destination_categories`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8mb4 */;
+CREATE TABLE `destination_categories` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `name` varchar(100) NOT NULL,
+ `created_at` timestamp NULL DEFAULT current_timestamp(),
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `name` (`name`)
+) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+DROP TABLE IF EXISTS `destinations`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8mb4 */;
+CREATE TABLE `destinations` (
+ `id` varchar(36) NOT NULL,
+ `name` varchar(255) NOT NULL,
+ `location` varchar(255) NOT NULL,
+ `description` text NOT NULL,
+ `image` varchar(500) NOT NULL,
+ `category` varchar(50) NOT NULL,
+ `rating` decimal(2,1) NOT NULL DEFAULT 4.5,
+ `price` decimal(10,2) NOT NULL,
+ `currency` varchar(3) NOT NULL DEFAULT 'USD',
+ `created_at` datetime NOT NULL DEFAULT current_timestamp(),
+ PRIMARY KEY (`id`),
+ KEY `idx_category` (`category`),
+ KEY `idx_name` (`name`),
+ KEY `idx_location` (`location`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+DROP TABLE IF EXISTS `newsletter_subscribers`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8mb4 */;
+CREATE TABLE `newsletter_subscribers` (
+ `id` varchar(36) NOT NULL,
+ `email` varchar(255) NOT NULL,
+ `subscribed_at` datetime NOT NULL DEFAULT current_timestamp(),
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `email` (`email`),
+ KEY `idx_email` (`email`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+DROP TABLE IF EXISTS `specials`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8mb4 */;
+CREATE TABLE `specials` (
+ `id` varchar(36) NOT NULL,
+ `destination_id` varchar(36) NOT NULL,
+ `discount` decimal(5,2) NOT NULL,
+ `price` decimal(10,2) DEFAULT NULL,
+ `end_date` date NOT NULL,
+ `highlights` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL CHECK (json_valid(`highlights`)),
+ `created_at` datetime NOT NULL DEFAULT current_timestamp(),
+ `image_path` varchar(500) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ KEY `idx_destination` (`destination_id`),
+ KEY `idx_end_date` (`end_date`),
+ CONSTRAINT `specials_ibfk_1` FOREIGN KEY (`destination_id`) REFERENCES `destinations` (`id`) ON DELETE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+DROP TABLE IF EXISTS `testimonials`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8mb4 */;
+CREATE TABLE `testimonials` (
+ `id` varchar(36) NOT NULL,
+ `full_name` varchar(255) NOT NULL,
+ `location` varchar(255) NOT NULL,
+ `message` text NOT NULL,
+ `image_path` varchar(500) DEFAULT NULL,
+ `status` enum('pending','approved','denied') NOT NULL DEFAULT 'pending',
+ `created_at` timestamp NULL DEFAULT current_timestamp(),
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+