Files
daily-meal-api/database/seeders/LegalDocumentSeeder.php
T
leonm 2ece4b6e3e
CI / 🧪 Tests Laravel (push) Successful in 2m48s
CI / 🐳 Build & Push Image (push) Successful in 3m0s
feat: subscriptions
2026-08-07 11:53:46 +02:00

147 lines
9.2 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?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 lapplication mobile Bowli.',
'Elle est destinée aux utilisateurs de lapplication 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 dauthentification, 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 lanalyse dimage, la photo du repas peut être transmise à un fournisseur dintelligence 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 lapplication.',
],
],
[
'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 dajouter une image à un repas, à ton profil ou à une demande de certification.',
],
],
[
'title' => 'Certification et pièce didentité',
'body' => [
'Si tu achètes la certification et demandes le badge, Bowli traite la photo de ta pièce didentité 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 lacceptation ou le refus. Le statut de la vérification et sa date sont conservés avec ton compte.',
],
],
[
'title' => 'Paiements et abonnements',
'body' => [
'Stripe traite les paiements, les abonnements, les factures et les informations de moyen de paiement. Bowli conserve uniquement les identifiants et statuts nécessaires au suivi de la transaction et de tes droits daccès.',
],
],
[
'title' => 'Suppression et droits',
'body' => [
'Tu peux supprimer ton compte depuis lapplication ou demander la suppression par email au support. Selon ta localisation, tu peux disposer de droits daccès, de rectification, dopposition, de limitation, deffacement 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 lutilisation de Bowli, une application de suivi alimentaire et sportif.',
'En créant un compte ou en utilisant lapplication, tu acceptes ces conditions dans leur version active.',
],
'sections' => [
[
'title' => 'Compte utilisateur',
'body' => [
'Tu dois fournir des informations exactes lors de linscription, garder ton accès confidentiel et nous prévenir en cas dutilisation non autorisée.',
],
],
[
'title' => 'Usage personnel',
'body' => [
'Bowli est conçu pour un suivi personnel des repas, objectifs et activités sportives. Lapplication 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 tengages à 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. Lanalyse automatique des photos est accessible pendant la période dessai indiquée dans lapplication, puis avec lunique formule dabonnement active.',
'La certification est un achat unique distinct de labonnement. Le paiement donne le droit de soumettre une demande, mais le badge nest accordé quaprès vérification dune pièce didentité 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 lapplication. Une procédure web est aussi disponible pour les utilisateurs qui nont plus accès à lapplication.',
],
],
],
],
],
'is_active' => true,
'published_at' => now(),
],
);
}
}