147 lines
9.3 KiB
PHP
147 lines
9.3 KiB
PHP
<?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' => 2],
|
||
[
|
||
'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, à ton profil ou à une demande de certification.',
|
||
],
|
||
],
|
||
[
|
||
'title' => 'Certification et pièce d’identité',
|
||
'body' => [
|
||
'Si tu achètes la certification et demandes le badge, Bowli traite la photo de ta pièce d’identité uniquement pour vérifier que ton profil correspond à une personne réelle.',
|
||
'Le document est stocké dans un espace privé chiffré, accessible uniquement aux administrateurs autorisés par un lien temporaire, puis supprimé après l’acceptation ou le refus. Le statut de la vérification et sa date sont conservés avec ton compte.',
|
||
],
|
||
],
|
||
[
|
||
'title' => 'Paiements et abonnements',
|
||
'body' => [
|
||
'Apple ou Google traite le paiement selon ton appareil. RevenueCat synchronise les achats, abonnements et droits d’accès sans recevoir les informations complètes de ton moyen de paiement.',
|
||
],
|
||
],
|
||
[
|
||
'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' => 2],
|
||
[
|
||
'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' => 'Essai, abonnement et certification',
|
||
'body' => [
|
||
'La publication de plats reste accessible sans abonnement. L’analyse automatique des photos est accessible avec un abonnement mensuel ou annuel. Une éventuelle période d’essai concerne uniquement ces abonnements et sa durée est affichée avant validation par le store.',
|
||
'La certification ne comporte aucune période d’essai. C’est un achat unique distinct de l’abonnement : le paiement donne le droit de soumettre une demande, mais le badge n’est accordé qu’après vérification d’une pièce d’identité valide. En cas de refus, une nouvelle pièce peut être envoyée sans nouvel achat.',
|
||
],
|
||
],
|
||
[
|
||
'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(),
|
||
],
|
||
);
|
||
}
|
||
}
|