<?php

namespace Database\Seeders;

use App\Enums\LegalDocumentType;
use App\Models\LegalDocument;
use Illuminate\Database\Seeder;

class LegalDocumentSeeder extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run(): void
    {
        LegalDocument::query()->updateOrCreate(
            ['slug' => 'privacy-policy', 'version' => 1],
            [
                'type' => LegalDocumentType::PRIVACY_POLICY,
                'title' => [
                    'fr' => 'Politique de confidentialité',
                ],
                'content' => [
                    'fr' => [
                        'intro' => [
                            'Cette politique explique comment Bowli traite les données utilisées par l’application mobile Bowli.',
                            'Elle est destinée aux utilisateurs de l’application et aux fiches App Store / Google Play.',
                        ],
                        'sections' => [
                            [
                                'title' => 'Données de compte',
                                'body' => [
                                    'Bowli traite les informations nécessaires à la création et à la sécurisation du compte : adresse email, nom, avatar, mot de passe chiffré, jetons d’authentification, statut de vérification, préférences de profil et réglages.',
                                ],
                            ],
                            [
                                'title' => 'Repas, photos et nutrition',
                                'body' => [
                                    'Les repas, photos, ingrédients, calories, protéines, glucides, lipides, légendes, avis et statuts de visibilité servent à afficher ton journal, tes statistiques, ton profil et les contenus que tu choisis de publier.',
                                    'Si tu utilises l’analyse d’image, la photo du repas peut être transmise à un fournisseur d’intelligence artificielle configuré par Bowli afin de produire un brouillon nutritionnel éditable.',
                                ],
                            ],
                            [
                                'title' => 'Activités sportives et Strava',
                                'body' => [
                                    'Si tu connectes Strava, Bowli demande les autorisations nécessaires pour lire ton profil et tes activités sportives, puis importer les séances utiles à ton suivi.',
                                    'Les jetons Strava sont stockés chiffrés côté API. Tu peux révoquer cette connexion depuis l’application.',
                                ],
                            ],
                            [
                                'title' => 'Notifications et appareil',
                                'body' => [
                                    'Si tu actives les notifications, Bowli enregistre un token Expo Push pour envoyer des notifications liées à ton compte.',
                                    'La caméra et la bibliothèque photo ne sont utilisées que lorsque tu choisis d’ajouter une image à un repas ou à ton profil.',
                                ],
                            ],
                            [
                                'title' => 'Suppression et droits',
                                'body' => [
                                    'Tu peux supprimer ton compte depuis l’application ou demander la suppression par email au support. Selon ta localisation, tu peux disposer de droits d’accès, de rectification, d’opposition, de limitation, d’effacement et de portabilité.',
                                ],
                            ],
                        ],
                    ],
                ],
                'is_active' => true,
                'published_at' => now(),
            ],
        );

        LegalDocument::query()->updateOrCreate(
            ['slug' => 'terms-of-service', 'version' => 1],
            [
                'type' => LegalDocumentType::TERMS,
                'title' => [
                    'fr' => "Conditions d'utilisation",
                ],
                'content' => [
                    'fr' => [
                        'intro' => [
                            'Ces conditions encadrent l’utilisation de Bowli, une application de suivi alimentaire et sportif.',
                            'En créant un compte ou en utilisant l’application, tu acceptes ces conditions dans leur version active.',
                        ],
                        'sections' => [
                            [
                                'title' => 'Compte utilisateur',
                                'body' => [
                                    'Tu dois fournir des informations exactes lors de l’inscription, garder ton accès confidentiel et nous prévenir en cas d’utilisation non autorisée.',
                                ],
                            ],
                            [
                                'title' => 'Usage personnel',
                                'body' => [
                                    'Bowli est conçu pour un suivi personnel des repas, objectifs et activités sportives. L’application ne fournit pas de diagnostic, prescription ou conseil médical.',
                                    'Les calories, macronutriments et estimations automatiques sont indicatifs.',
                                ],
                            ],
                            [
                                'title' => 'Contenus publiés',
                                'body' => [
                                    'Tu conserves tes droits sur les photos, repas, avis et informations que tu ajoutes. Tu accordes à Bowli les droits nécessaires pour héberger, afficher, traiter et partager ces contenus selon tes réglages de visibilité.',
                                    'Tu t’engages à ne pas publier de contenu illégal, trompeur, haineux, violent, discriminatoire, attentatoire à la vie privée ou aux droits de tiers.',
                                ],
                            ],
                            [
                                'title' => 'Modération et disponibilité',
                                'body' => [
                                    'Bowli peut masquer, supprimer ou limiter la diffusion de contenus qui enfreignent ces conditions, les règles des stores ou la loi applicable.',
                                    'Le service peut être interrompu pour maintenance, incident, évolution technique ou contrainte externe.',
                                ],
                            ],
                            [
                                'title' => 'Suppression du compte',
                                'body' => [
                                    'Tu peux supprimer ton compte depuis les réglages de l’application. Une procédure web est aussi disponible pour les utilisateurs qui n’ont plus accès à l’application.',
                                ],
                            ],
                        ],
                    ],
                ],
                'is_active' => true,
                'published_at' => now(),
            ],
        );
    }
}
