# Housescanly — installation sur ton cPanel Namecheap

Le site fonctionne comme Carscanly : une page de drapeaux à l'ouverture, chaque drapeau ouvre le pays dans sa langue, et le paiement se fait par **Paddle** (carte, PayPal…) ou **USDT TRC20**. Aucun coût fixe à part le nom de domaine.

## Contenu du dossier

| Élément | Rôle |
|---|---|
| `public_html/` | **Tout ce qu'il faut envoyer sur l'hébergement** |
| `public_html/index.html` + `assets/` | Le site (drapeaux, 7 langues, carte, aperçu, rapport, PDF) |
| `public_html/legal.html` | CGV, remboursement, confidentialité, mentions légales (exigées par Paddle) |
| `public_html/api/` | Le serveur PHP : aperçu, rapport, vérification des paiements |
| `public_html/private/` | Moteur, configuration, données, commandes (protégé, inaccessible depuis le web) |
| `tests/` | Tests automatiques (à garder sur ton PC, inutile en ligne) |

## Pays et niveau de rapport

| Niveau | Pays | Contenu | Prix conseillé |
|---|---|---|---|
| Complet | France | Risques officiels, délinquance, prix réels, quartiers prioritaires, antennes, voisinage, services, séismes | 49 € |
| Avancé | Royaume-Uni | Zones d'alerte inondation, délits par rue, prix de vente, antennes, voisinage, services, séismes | 49 € |
| Avancé | États-Unis | Zones inondables FEMA, valeur des logements, antennes, voisinage, services, séismes | 49 € |
| Standard | Belgique, Suisse, Luxembourg, Irlande, Pays-Bas, Allemagne, Autriche, Espagne, Portugal, Italie, Danemark, Suède, Norvège, Finlande, Pologne, Tchéquie, Grèce | Antennes et lignes électriques, voisinage, services, séismes | 36 € |

Ce que couvre chaque pays est affiché au client **avant** l'achat.

## 1. Le domaine
Dans cPanel → **Domains** → ajoute `housescanly.com` (domaine supplémentaire). Note le dossier racine créé (par exemple `/home/TONCOMPTE/housescanly.com`).
Si le domaine est chez Namecheap mais pas sur ce cPanel : dans Namecheap → Domain List → housescanly.com → Nameservers → « Namecheap Web Hosting DNS ».

## 2. Envoyer les fichiers
1. Sur ton PC, ouvre le zip et compresse **le contenu** du dossier `public_html` (pas le dossier lui-même).
2. cPanel → **File Manager** → ouvre le dossier racine du domaine → **Upload** → envoie ce zip → clic droit → **Extract**.
3. Vérifie que tu vois bien `index.html`, `legal.html`, `assets/`, `api/`, `private/` à la racine du domaine.

## 3. PHP et HTTPS
- cPanel → **MultiPHP Manager** : choisis **PHP 8.1 ou plus** pour housescanly.com.
- cPanel → **SSL/TLS Status** → **Run AutoSSL** (certificat gratuit). Le site force ensuite le https tout seul.

## 4. La configuration
Dans `private/`, copie `config.sample.php` en **`config.php`** et remplis :

| Ligne | Où la trouver |
|---|---|
| `paddle_api_key` | Paddle → Developer tools → Authentication → API key (permission « Transactions : read ») |
| `paddle_client_token` | Paddle → Developer tools → Authentication → Client-side token |
| `paddle_price_full` | Paddle → Catalog → produit « Rapport complet » → prix 49 EUR → identifiant `pri_…` |
| `paddle_price_standard` | Paddle → produit « Rapport standard » → prix 36 EUR → `pri_…` |
| `usdt_address` | Ton adresse **TRC20** (réseau TRON) pour recevoir les USDT |
| `contact_email` | L'adresse de contact affichée |

Commence avec `'paddle_env' => 'sandbox'` et les clés **sandbox** (sandbox-vendors.paddle.com).

## 5. Paddle
1. Crée les 2 produits et leurs prix (voir tableau ci-dessus).
2. Checkout → Settings → **Default payment link** : `https://housescanly.com/`.
3. Ajoute `housescanly.com` dans les **domaines approuvés**.
4. Teste en sandbox avec la carte `4242 4242 4242 4242`, date future, CVC `100`.
5. Demande la validation du compte live (Paddle vérifie le site et `legal.html`), puis remplace les clés et identifiants par ceux de **production** et mets `'paddle_env' => 'production'`.

## 6. USDT (TRC20)
- Le client voit un **montant unique** (par exemple 57,07 USDT), l'adresse et un QR code.
- Le site vérifie la blockchain TRON toutes les 8 secondes et ouvre le rapport dès que le montant exact arrive.
- Conseil : utilise une adresse de **portefeuille personnel** (TronLink, Trust Wallet…) plutôt qu'une adresse de dépôt d'exchange, qui peut changer.
- Facultatif : une clé gratuite sur trongrid.io (`trongrid_api_key`) si tu as beaucoup de paiements USDT.

## 7. Les données françaises (prix, délinquance, quartiers prioritaires)
cPanel → **Cron Jobs** → ajoute (toutes les 30 minutes) :
```
*/30 * * * *  php /home/TONCOMPTE/housescanly.com/private/cron/build_data.php >> /home/TONCOMPTE/housescanly.com/private/logs/data.log 2>&1
```
Remplace `/home/TONCOMPTE/housescanly.com` par le vrai chemin (affiché en haut du File Manager).
Chaque passage traite une petite étape : délinquance, puis quartiers prioritaires, puis 6 départements de prix. Le premier remplissage complet prend **environ 10 heures**, puis tout se met à jour seul **chaque mois**. Entre deux mois, le script ne fait rien.
Tu peux suivre l'avancement dans `private/logs/data.log`.

Les autres pays n'ont besoin d'aucune donnée préparée : tout est interrogé en direct.

## 8. Vérifier que tout marche
1. Ouvre `https://housescanly.com` → clique sur le drapeau France → tape une adresse → l'aperçu gratuit s'affiche.
2. Paie en sandbox → le rapport complet s'affiche → « Télécharger en PDF ».
3. Fais pareil avec le Royaume-Uni, les États-Unis et l'Allemagne.

## Bon à savoir
- **Aucune mention d'IA** sur le site : les rapports sont présentés comme des analyses de données publiques.
- Le site ne copie pas les signes de l'État : le rapport précise qu'il s'agit d'un service privé.
- Les antennes, lignes électriques et nuisances viennent d'OpenStreetMap (gratuit, parfois incomplet). Les résultats sont mis en cache 7 jours par adresse, ce qui limite les appels.
- Les serveurs publics utilisés ont des limites d'usage raisonnable. Si le site dépasse quelques milliers de rapports par jour, il faudra prévoir un serveur OpenStreetMap dédié.
- « Mes rapports » est conservé dans le navigateur du client : il peut rouvrir son rapport sans repayer sur le même appareil.

## Tests (sur ton PC, facultatif)
```
php tests/run.php
php tests/data_test.php
```
