Al-HUWAITI Shell
Al-huwaiti


Server : Apache
System : Linux webd003.cluster111.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
User : edevmultrx ( 811899)
PHP Version : 7.4.33
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
Directory :  /home/edevmultrx/www/terra-d-oro/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/edevmultrx/www/terra-d-oro/CLAUDE.md
# Terra d'Oro — CLAUDE.md

> Site de location de villas de luxe et restaurant en Corse.
> **Stack** : PHP 8.1+ vanilla, HTML/CSS/JS vanilla — zéro dépendance (pas de Composer, pas de npm).

---

## Commandes de développement

```bash
# Lancer le serveur local
php -S localhost:8000 router.php

# Initialiser / réinitialiser la base SQLite
php core/init.php

# Synchronisation manuelle iCal (en local)
curl "http://localhost:8000/api/sync.php?key=SYNC_KEY"

# En production — cron toutes les 15 min
*/15 * * * * curl -s "https://www.terradoro.com/api/sync.php?key=SYNC_KEY" > /dev/null 2>&1
```

---

## Architecture du projet

```
Terra d-Oro/
├── admin/            # Panel admin (HTTP Basic Auth)
├── api/              # Endpoints JSON (availability, booking, sync, Stripe, iCal)
├── core/             # Noyau applicatif
│   ├── config.php    # Constantes, credentials, thème
│   ├── db.php        # Connexion PDO + schéma DDL + seeding
│   ├── init.php      # Script CLI d'initialisation de la DB
│   ├── helpers.php   # Fonctions globales (render_view, format_price, CSRF…)
│   ├── antigravity.php  # Micro-routeur
│   ├── payment.php   # Intégration Stripe
│   └── ical/         # Sync calendrier (ICalParser, ICalGenerator, SyncManager)
├── data/             # Données runtime (terra.db, cache iCal, logs sync)
├── public/           # Racine web (index.php, css/, js/, img/, video/)
├── views/            # Templates PHP (layout, villas, booking, legal…)
├── logs/             # Logs applicatifs
├── router.php        # Routeur pour le serveur PHP intégré
├── DEPLOY.md         # Guide complet de déploiement (394 lignes)
└── terra_doro_mysql.sql  # Export schéma MySQL pour production
```

---

## Base de données

- **Dev** : SQLite 3 (`data/terra.db`) — créée automatiquement par `core/db.php`
- **Prod** : MySQL/MariaDB (o2switch)
- **Tables** : `terra_doro_units`, `terra_doro_bookings`, `terra_doro_ical_sources`, `terra_doro_recommendations`

---

## Flux de réservation

1. Sélection des dates sur la page villa
2. Vérification disponibilité → `api/availability.php`
3. Soumission formulaire → `api/booking-attempt.php` (status `pending`)
4. Paiement Stripe (acompte 30%) → redirection checkout
5. Webhook Stripe → `api/stripe-webhook.php` → status `confirmed`
6. Page de confirmation

---

## Sync iCal (Airbnb / Booking.com)

- **Entrant** : cron → `api/sync.php` → fetch .ics OTAs → parse → upsert en DB
- **Sortant** : `api/ical-feed.php?unit=villa-folacca` → .ics généré pour import OTA

---

## Design

- **Palette botanique** : olive `#556B2F`, sauge `#8A9A5B`, crème `#F2EDE4`, charcoal `#2C2C2C`
- **Typo** : Cormorant Garamond (titres), Inter (corps)
- **Responsive** : mobile-first, vanilla CSS

---

## Conventions

- Tout le code est en **vanilla PHP/JS/CSS** — pas de framework, pas de bundler.
- Les fichiers `.pen` sont gérés exclusivement via les outils Pencil MCP.
- Le routeur (`antigravity.php`) utilise un tableau associatif simple pour le mapping URL → vue.
- CSRF tokens obligatoires sur tous les formulaires.
- Les credentials sensibles sont dans `core/config.php` (ne pas commiter en clair en prod).

---

## Hébergement production

- **Hébergeur** : o2switch (cPanel)
- **PHP** : 8.1+ avec extensions `pdo_sqlite`, `curl`, `mbstring`, `fileinfo`
- **SSL** : Let's Encrypt
- **SMTP** : ssl0.ovh.net:465 (reservations@terra-doro.com)
- **Voir** : `DEPLOY.md` pour le guide complet de mise en production

---

## Tâches en cours / Statut

- [x] Architecture complète du site (routeur, vues, admin)
- [x] Système de réservation avec paiement Stripe
- [x] Synchronisation iCal bidirectionnelle (Airbnb, Booking.com)
- [x] Panel admin (dashboard, gestion réservations, config iCal)
- [x] Pages villas (Folacca, Tamaricciu) avec galeries et formulaires
- [x] Page restaurant avec réservation
- [x] Pages légales (mentions, CGV, confidentialité)
- [x] Guide de déploiement (DEPLOY.md)
- [ ] Upload des assets photo/vidéo finaux
- [ ] Déploiement en production sur o2switch
- [ ] Configuration DNS et SSL
- [ ] Tests end-to-end avec Stripe en mode live

Al-HUWAITI Shell