diff --git a/prisma/schema.prisma b/prisma/schema.prisma index a81cca8..56e8c21 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -100,6 +100,7 @@ model Entity { id String @id @default(cuid()) type String name String + avatar String? @db.Text // Base64 image or URL description String @default("") details String @default("") storyContext String? diff --git a/scripts/test-prisma.ts b/scripts/test-prisma.ts new file mode 100644 index 0000000..83741ea --- /dev/null +++ b/scripts/test-prisma.ts @@ -0,0 +1,11 @@ +import { PrismaClient } from '@prisma/client'; + +const prisma = new PrismaClient(); + +async function main() { + console.log(Object.keys(prisma.entity.fields)); + const e = await prisma.entity.findFirst(); + console.log(e); +} + +main().catch(console.error).finally(() => prisma.$disconnect()); diff --git a/src/app/api/entities/[id]/route.ts b/src/app/api/entities/[id]/route.ts index 47563eb..2d2a0b6 100644 --- a/src/app/api/entities/[id]/route.ts +++ b/src/app/api/entities/[id]/route.ts @@ -30,6 +30,7 @@ export async function PUT( data: { ...(body.name !== undefined && { name: body.name }), ...(body.type !== undefined && { type: body.type }), + ...(body.avatar !== undefined && { avatar: body.avatar }), ...(body.description !== undefined && { description: body.description }), ...(body.details !== undefined && { details: body.details }), ...(body.storyContext !== undefined && { storyContext: body.storyContext }), diff --git a/src/app/api/entities/route.ts b/src/app/api/entities/route.ts index 9b76896..7bd8869 100644 --- a/src/app/api/entities/route.ts +++ b/src/app/api/entities/route.ts @@ -24,6 +24,7 @@ export async function POST(request: NextRequest) { data: { type: body.type, name: body.name || 'Nouvelle entité', + avatar: body.avatar || null, description: body.description || '', details: body.details || '', storyContext: body.storyContext || null, diff --git a/src/app/cgu/page.tsx b/src/app/cgu/page.tsx index eee800e..690fcc9 100644 --- a/src/app/cgu/page.tsx +++ b/src/app/cgu/page.tsx @@ -27,10 +27,151 @@ export default function CGUPage() {
-

{t('legal.cgu_title')}

-
-

{t('legal.cgu_content')}

-

(Ceci est un document type en attente de la version finale par un conseiller juridique)

+

Conditions Générales d'Utilisation (CGU)

+
+ +
+

Version en vigueur au : [Indiquer la date]

+ +

Préambule

+

+ La présente plateforme (ci-après "la Plateforme"), accessible à l'adresse + https://pluu.me + (ou lien original vidéo), + est éditée par [Nom de votre Société/Nom du Propriétaire]. La Plateforme propose un service de génération de contenus textuels assisté par l'intelligence artificielle (technologie Google Gemini) destiné à la création d'ebooks. +

+

+ Les présentes Conditions Générales d'Utilisation (CGU) ont pour objet de définir les règles d'accès et d'utilisation du service. Tout accès ou utilisation de la Plateforme suppose l'acceptation sans réserve de l'intégralité des présentes conditions. +

+
+ +
+

Article 1 : Définitions

+
    +
  • Utilisateur : Toute personne physique ou morale accédant à la Plateforme.
  • +
  • Service : Ensemble des outils de génération de texte, de structuration et d'exportation d'ebooks mis à disposition.
  • +
  • Contenu Généré : Textes, plans ou documents produits par l'IA suite aux instructions de l'Utilisateur.
  • +
  • Prompt : Instructions textuelles saisies par l'Utilisateur pour diriger l'IA.
  • +
+
+ +
+

Article 2 : Accès et Inscription

+

+ L'accès à la Plateforme est réservé aux personnes majeures. Pour utiliser les services de génération, l'Utilisateur doit créer un compte. Il est responsable de la confidentialité de ses identifiants. +

+
+ +
+

Article 3 : Conditions Financières (Abonnements et Crédits)

+

3.1 Tarifs

+

+ L'accès aux fonctionnalités de génération est soumis à une tarification consultable sur la page Tarifs. Les prix sont exprimés en Euros TTC. +

+
    +
  • Abonnements : Prélèvement périodique automatique.
  • +
  • Packs de crédits : Achat ponctuel pour un nombre défini de générations.
  • +
+ +

3.2 Paiement et Sécurité

+

+ Les paiements sont traités par un prestataire de paiement sécurisé. La Plateforme ne stocke aucune coordonnée bancaire. +

+
+ +
+

Article 4 : Obligations de l'Utilisateur et Sécurité (Clause Stricte)

+

L'Utilisateur s'engage à utiliser le Service de manière licite.

+ +

4.1 Contenus Interdits

+

Il est formellement interdit d'utiliser la Plateforme pour générer des contenus :

+
    +
  • Pédopornographiques (CSAM) : Toute tentative de génération, requête ou diffusion de contenu lié à l'exploitation sexuelle des mineurs fera l'objet d'un bannissement immédiat sans préavis ni remboursement. Conformément à la loi, la Plateforme procédera à un signalement systématique auprès des autorités compétentes (Plateforme PHAROS).
  • +
  • Haineux et Discriminatoires : Incitation à la violence, au racisme, à l'antisémitisme, à l'homophobie ou toute forme de discrimination.
  • +
  • Illégaux : Apologie de crimes, terrorisme, ou violation de droits de propriété intellectuelle tiers.
  • +
+ +

4.2 Surveillance et Modération

+

+ La Plateforme utilise des algorithmes de filtrage en temps réel. En cas de violation répétée ou grave de cet article, la Plateforme se réserve le droit de suspendre le compte de l'Utilisateur de plein droit. +

+
+ +
+

Article 5 : Propriété Intellectuelle

+

5.1 Droits de l'Utilisateur

+

+ La Plateforme concède à l'Utilisateur, sous réserve du paiement des frais éventuels, la pleine propriété des droits d'exploitation sur les ebooks générés. +

+
+ Note sur l'IA : L'Utilisateur est informé que la protection par le droit d'auteur des œuvres générées par IA peut varier selon les législations nationales et nécessite souvent une intervention créative humaine significative de la part de l'Utilisateur. +
+ +

5.2 Droits de la Plateforme

+

+ L'interface, les algorithmes de connexion à l'API Gemini et l'identité visuelle du site restent la propriété exclusive de l'Éditeur. +

+
+ +
+

Article 6 : Politique de "Zéro Stockage" et Confidentialité

+

6.1 Traitement Éphémère

+

+ La Plateforme applique une politique stricte de confidentialité. Aucune donnée de création (prompts, textes générés, ebooks en cours) n'est sauvegardée sur nos serveurs de manière permanente. +

+

+ Les données ne sont conservées que le temps de la session de travail pour permettre l'affichage et l'exportation. +

+

+ Quoi qu'il arrive, si l'Utilisateur décide de supprimer ses informations, son projet ou ferme sa session, toutes les données associées sont immédiatement et irréversiblement supprimées de nos bases de données. +

+ +

6.2 Responsabilité de Sauvegarde

+

+ En raison de cette politique de non-conservation, il appartient exclusivement à l'Utilisateur de télécharger et de sauvegarder ses travaux (format PDF, EPUB, etc.) avant la clôture de sa session. La Plateforme ne pourra être tenue responsable d'une perte de données consécutive à une déconnexion ou une suppression volontaire. +

+
+ +
+

Article 7 : Limitation de Responsabilité

+

7.1 Qualité du Contenu

+

+ Le Service utilise la technologie Google Gemini. L'Utilisateur accepte que l'IA puisse produire des informations inexactes, incomplètes ou biaisées ("hallucinations"). La Plateforme ne saurait être tenue responsable du contenu des ebooks ou de l'utilisation qui en est faite. +

+ +

7.2 Disponibilité Technique

+

+ La Plateforme ne peut garantir une disponibilité ininterrompue du service, celle-ci dépendant de prestataires tiers (hébergement et API Google). +

+
+ +
+

Article 8 : Protection des Données Personnelles (RGPD)

+

+ Les seules données conservées sont celles strictement nécessaires à la gestion du compte (email, facturation). L'Utilisateur dispose d'un droit d'accès, de rectification et de suppression totale de ses données personnelles sur simple demande à : rgpd@pluu.me. +

+
+ +
+

Article 9 : Modification et Résiliation

+

9.1 Modification des CGU

+

+ La Plateforme se réserve le droit de modifier les présentes CGU à tout moment. L'Utilisateur sera informé de toute modification substantielle. +

+ +

9.2 Résiliation

+

+ L'Utilisateur peut supprimer son compte à tout moment. Cette action entraîne la suppression immédiate de toutes ses données, conformément à l'Article 6. +

+
+ +
+

Article 10 : Loi Applicable et Juridiction

+

+ Les présentes CGU sont soumises au droit français. Tout litige relatif à leur interprétation ou exécution relève de la compétence exclusive des tribunaux de [Ville]. +

+
+
diff --git a/src/app/cgv/page.tsx b/src/app/cgv/page.tsx index be62f13..e51f2f9 100644 --- a/src/app/cgv/page.tsx +++ b/src/app/cgv/page.tsx @@ -27,10 +27,115 @@ export default function CGVPage() {
-

{t('legal.cgv_title')}

-
-

{t('legal.cgv_content')}

-

(Ceci est un document type en attente de la version finale par un conseiller juridique)

+

Conditions Générales de Vente (CGV)

+
+ +
+

Version en vigueur au : [Indiquer la date]

+ +

Article 1 : Objet et Champ d'Application

+

+ Les présentes Conditions Générales de Vente (CGV) s'appliquent, sans restriction ni réserve, à tout achat des services de génération d'ebooks (ci-après "les Services") proposés par [Nom de votre Société/Nom du Propriétaire] (ci-après "le Vendeur") sur la plateforme + https://pluu.me. +

+

+ Ces CGV encadrent les modalités de commande, de paiement, de livraison des crédits/abonnements et de gestion des éventuels litiges entre le Vendeur et l'Utilisateur (ci-après "le Client"). +

+
+ +
+

Article 2 : Caractéristiques des Services

+

Le Vendeur propose des solutions de création d'ebooks assistées par l'intelligence artificielle Google Gemini. Les offres sont divisées en deux catégories :

+
    +
  • Packs de Crédits : Achat ponctuel d'un volume défini de générations de contenu.
  • +
  • Abonnements : Accès illimité ou plafonné aux services pour une durée déterminée (mensuelle ou annuelle) avec renouvellement automatique.
  • +
+
+ +
+

Article 3 : Commande et Validation

+

+ Le Client sélectionne l'offre de son choix sur la Plateforme. La commande est considérée comme définitive dès la validation du paiement par le prestataire tiers. Un e-mail de confirmation est envoyé au Client à l'adresse renseignée lors de la création du compte. +

+
+ +
+

Article 4 : Conditions Financières

+ +

4.1 Tarifs

+

+ Les prix sont indiqués en Euros et s'entendent toutes taxes comprises (TTC). Le Vendeur se réserve le droit de modifier ses tarifs à tout moment, mais les services seront facturés sur la base des tarifs en vigueur au moment de l'enregistrement de la commande. +

+ +

4.2 Modalités de paiement (Stripe)

+

Le paiement s'effectue exclusivement par carte bancaire via le système de paiement sécurisé Stripe.

+
    +
  • Le Vendeur n'a jamais accès aux coordonnées bancaires du Client.
  • +
  • Stripe garantit la confidentialité et la sécurité des transactions grâce au protocole SSL et à la conformité PCI-DSS.
  • +
+
+ +
+

Article 5 : Gestion des Abonnements

+

5.1 Renouvellement automatique

+

+ Tout abonnement souscrit est à tacite reconduction. Le Client autorise Stripe à prélever le montant de l'abonnement à chaque échéance (mois ou année) sur la carte bancaire utilisée lors de l'achat initial. +

+ +

5.2 Résiliation

+

Le Client peut résilier son abonnement à tout moment et sans frais depuis son espace personnel.

+
    +
  • La résiliation interrompt le renouvellement automatique mais laisse l'accès aux services actif jusqu'à la fin de la période en cours.
  • +
  • Aucun remboursement pro rata n'est effectué pour la période restant à courir entre la date de résiliation et la fin de l'échéance.
  • +
+
+ +
+

Article 6 : Droit de Rétractation (Produits Numériques)

+

+ Conformément à l'article L221-28 du Code de la consommation (ou législation équivalente selon le pays), le droit de rétractation de 14 jours ne s'applique pas aux contrats de fourniture de contenu numérique non fourni sur un support matériel dont l'exécution a commencé après accord préalable exprès du consommateur et renoncement exprès à son droit de rétractation. +

+
+ En procédant au paiement et en utilisant son premier crédit de génération, le Client accepte expressément l'exécution immédiate du service et renonce à son droit de rétractation. Aucun remboursement ne sera accordé une fois le service consommé. +
+
+ +
+

Article 7 : Livraison et Accès

+

+ Les Services sont réputés "livrés" dès que les crédits sont ajoutés au compte du Client ou que l'accès premium est débloqué. En cas de problème technique empêchant l'accès immédiat, le Client doit contacter le support à l'adresse suivante : [Email de contact]. +

+
+ +
+

Article 8 : Garanties et Responsabilité Commerciale

+

8.1 Qualité de l'IA

+

+ Le Vendeur vend un accès à un outil de génération. Il ne garantit pas la qualité littéraire, l'exactitude des faits ou l'originalité absolue du texte produit par l'IA. Par conséquent, aucune demande de remboursement ne pourra être motivée par une "déception" quant au style ou à la pertinence des réponses de l'IA. +

+ +

8.2 Continuité de service

+

+ Le Vendeur s'engage à faire ses meilleurs efforts pour maintenir l'accès au service, mais ne pourra être tenu responsable des pannes dues aux prestataires tiers (Stripe, API Google Gemini). +

+
+ +
+

Article 9 : Politique de Suppression des Données

+

Comme stipulé dans les CGU, le Vendeur applique une politique de zéro stockage.

+
    +
  • Si le Client supprime ses informations ou son compte, toutes les données de facturation sont archivées uniquement pour la durée légale fiscale, mais les contenus créés sont supprimés irréversiblement.
  • +
  • Le Client ne pourra prétendre à un dédommagement en cas de perte de données suite à une suppression volontaire.
  • +
+
+ +
+

Article 10 : Litiges et Loi Applicable

+

+ Les présentes CGV sont soumises au droit [Pays]. En cas de litige, une solution amiable sera recherchée avant toute action judiciaire. À défaut d'accord, compétence exclusive est attribuée aux tribunaux de [Ville]. +

+
+
diff --git a/src/app/globals.css b/src/app/globals.css index e0914ed..08aa4dd 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -3,6 +3,9 @@ @theme { --font-sans: 'Inter', sans-serif; --font-serif: 'Merriweather', serif; + --font-lora: 'Lora', serif; + --font-garamond: 'EB Garamond', serif; + --font-playfair: 'Playfair Display', serif; --color-paper: #fcfbf7; /* Global Theme Colors */ diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 33c2e7c..4fc4730 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,8 +1,10 @@ import type { Metadata } from "next"; -import { Inter, Merriweather } from "next/font/google"; +import { Inter, Merriweather, Lora, EB_Garamond, Playfair_Display } from "next/font/google"; import Script from "next/script"; import { AuthProvider } from "@/providers/AuthProvider"; import { LanguageProvider } from "@/providers/LanguageProvider"; +import { CookieBanner } from "@/components/CookieBanner"; +import { Analytics } from "@/components/Analytics"; import "./globals.css"; const inter = Inter({ @@ -16,6 +18,21 @@ const merriweather = Merriweather({ variable: "--font-serif", }); +const lora = Lora({ + subsets: ["latin"], + variable: "--font-lora", +}); + +const garamond = EB_Garamond({ + subsets: ["latin"], + variable: "--font-garamond", +}); + +const playfair = Playfair_Display({ + subsets: ["latin"], + variable: "--font-playfair", +}); + export const metadata: Metadata = { title: "Pluume - Éditeur Intelligent", description: "Votre assistant éditorial intelligent propulsé par l'IA pour écrire votre prochain roman.", @@ -29,17 +46,13 @@ export default function RootLayout({ return ( -