using Bogus;
using Faker;
using System;
using System.Collections.Generic;
using Webzine.Entity;
namespace Webzine.Repository.Fake
{
///
/// Classe de fabrique pour générer des données factices (fake data) pour les entités Artiste et Titre.
///
public static class FakeDataFactory
{
//https://cdn-images.dzcdn.net/images/cover/311bba0fc112d15f72c8b5a65f0456c1/1900x1900-000000-80-0-0.jpg",
///
/// Génère une liste d'artistes avec des données factices, incluant des titres associés à chaque artiste.
///
/// Le nombre d'artistes à générer. Par défaut, 10 artistes seront générés.
/// Une liste d'objets Artiste avec des titres associés, générés de manière aléatoire.
public static List GetArtistes(int count = 10)
{
var artistes = new List();
for (int i = 1; i <= count; i++)
{
artistes.Add(new Artiste
{
IdArtiste = i,
Nom = Name.FullName(),
Biographie = Lorem.Paragraph(),
Titres = new List()
});
}
return artistes;
}
///
/// Génère une liste de titres avec des données factices, en associant chaque titre à un artiste existant.
///
/// Le nombre de titres à générer. Par défaut, 40 titres seront générés.
/// Une liste d'objets Titre avec des données factices, associés à des artistes générés de manière aléatoire.
public static List GetTitres(int count = 40)
{
var artistes = GetArtistes();
var titres = new List();
for (int i = 1; i <= count; i++)
{
var artiste = artistes[RandomNumber.Next(0, artistes.Count - 1)];
var titre = new Titre
{
IdTitre = i,
IdArtiste = artiste.IdArtiste,
Artiste = artiste,
Libelle = Lorem.Sentence(3),
Chronique = Lorem.Paragraph(),
DateCreation = DateTime.Now.AddDays(-RandomNumber.Next(1, 100)),
DateSortie = DateTime.Now.AddYears(-RandomNumber.Next(1, 20)),
Duree = RandomNumber.Next(120, 420),
UrlJaquette = "https://picsum.photos/300",
UrlEcoute = Internet.Url(),
NbLectures = RandomNumber.Next(0, 500),
NbLikes = RandomNumber.Next(0, 200),
Album = Lorem.Sentence(2),
Commentaires = new List()
};
titres.Add(titre);
artiste.Titres.Add(titre);
}
return titres;
}
}
}