Add fixtures for TaskStatus, TaskEffort, TaskPriority, TaskType, TaskGroup and sample Task entries. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
256 lines
8.6 KiB
PHP
256 lines
8.6 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\DataFixtures;
|
|
|
|
use App\Entity\Client;
|
|
use App\Entity\Project;
|
|
use App\Entity\Task;
|
|
use App\Entity\TaskEffort;
|
|
use App\Entity\TaskGroup;
|
|
use App\Entity\TaskPriority;
|
|
use App\Entity\TaskStatus;
|
|
use App\Entity\TaskType;
|
|
use App\Entity\User;
|
|
use Doctrine\Bundle\FixturesBundle\Fixture;
|
|
use Doctrine\Persistence\ObjectManager;
|
|
use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
|
|
|
|
class AppFixtures extends Fixture
|
|
{
|
|
public function __construct(
|
|
private readonly UserPasswordHasherInterface $passwordHasher,
|
|
) {}
|
|
|
|
public function load(ObjectManager $manager): void
|
|
{
|
|
// User admin
|
|
$admin = new User();
|
|
$admin->setUsername('admin');
|
|
$admin->setRoles(['ROLE_ADMIN']);
|
|
$admin->setPassword($this->passwordHasher->hashPassword($admin, 'admin'));
|
|
$manager->persist($admin);
|
|
|
|
// Clients
|
|
$clientLiot = new Client();
|
|
$clientLiot->setName('LIOT');
|
|
$clientLiot->setEmail('contact@liot.fr');
|
|
$clientLiot->setPhone('05 50 50 50 50');
|
|
$clientLiot->setStreet('14 allée d\'argenson');
|
|
$clientLiot->setCity('Poitiers');
|
|
$clientLiot->setPostalCode('86100');
|
|
$manager->persist($clientLiot);
|
|
|
|
$clientAcme = new Client();
|
|
$clientAcme->setName('ACME Corp');
|
|
$clientAcme->setEmail('contact@acme.com');
|
|
$clientAcme->setPhone('01 23 45 67 89');
|
|
$clientAcme->setStreet('10 rue de la Paix');
|
|
$clientAcme->setCity('Paris');
|
|
$clientAcme->setPostalCode('75002');
|
|
$manager->persist($clientAcme);
|
|
|
|
$clientNova = new Client();
|
|
$clientNova->setName('Nova Tech');
|
|
$clientNova->setEmail('info@novatech.io');
|
|
$clientNova->setPhone('04 56 78 90 12');
|
|
$clientNova->setStreet('5 avenue Jean Jaurès');
|
|
$clientNova->setCity('Lyon');
|
|
$clientNova->setPostalCode('69007');
|
|
$manager->persist($clientNova);
|
|
|
|
// Projets
|
|
$projectSirh = new Project();
|
|
$projectSirh->setName('SIRH');
|
|
$projectSirh->setDescription('Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer ac blandit turpis.');
|
|
$projectSirh->setColor('#222783');
|
|
$projectSirh->setClient($clientLiot);
|
|
$manager->persist($projectSirh);
|
|
|
|
$projectCrm = new Project();
|
|
$projectCrm->setName('CRM');
|
|
$projectCrm->setDescription('Gestion de la relation client et suivi commercial.');
|
|
$projectCrm->setColor('#E91E63');
|
|
$projectCrm->setClient($clientAcme);
|
|
$manager->persist($projectCrm);
|
|
|
|
$projectErp = new Project();
|
|
$projectErp->setName('ERP');
|
|
$projectErp->setDescription('Planification des ressources et gestion des stocks.');
|
|
$projectErp->setColor('#4A90D9');
|
|
$projectErp->setClient($clientNova);
|
|
$manager->persist($projectErp);
|
|
|
|
$projectInterne = new Project();
|
|
$projectInterne->setName('Site vitrine');
|
|
$projectInterne->setDescription('Refonte du site web corporate.');
|
|
$projectInterne->setColor('#26A69A');
|
|
$projectInterne->setClient(null);
|
|
$manager->persist($projectInterne);
|
|
|
|
// Task Statuses
|
|
$statusTodo = new TaskStatus();
|
|
$statusTodo->setLabel('A faire');
|
|
$statusTodo->setColor('#222783');
|
|
$statusTodo->setPosition(0);
|
|
$manager->persist($statusTodo);
|
|
|
|
$statusInProgress = new TaskStatus();
|
|
$statusInProgress->setLabel('En cours');
|
|
$statusInProgress->setColor('#222783');
|
|
$statusInProgress->setPosition(1);
|
|
$manager->persist($statusInProgress);
|
|
|
|
$statusBlocked = new TaskStatus();
|
|
$statusBlocked->setLabel('Bloqué');
|
|
$statusBlocked->setColor('#222783');
|
|
$statusBlocked->setPosition(2);
|
|
$manager->persist($statusBlocked);
|
|
|
|
$statusReview = new TaskStatus();
|
|
$statusReview->setLabel('En attente de validation');
|
|
$statusReview->setColor('#222783');
|
|
$statusReview->setPosition(3);
|
|
$manager->persist($statusReview);
|
|
|
|
$statusDone = new TaskStatus();
|
|
$statusDone->setLabel('Terminé');
|
|
$statusDone->setColor('#222783');
|
|
$statusDone->setPosition(4);
|
|
$manager->persist($statusDone);
|
|
|
|
// Task Efforts
|
|
$effortS = new TaskEffort();
|
|
$effortS->setLabel('S');
|
|
$manager->persist($effortS);
|
|
|
|
$effortM = new TaskEffort();
|
|
$effortM->setLabel('M');
|
|
$manager->persist($effortM);
|
|
|
|
$effortL = new TaskEffort();
|
|
$effortL->setLabel('L');
|
|
$manager->persist($effortL);
|
|
|
|
$effortXL = new TaskEffort();
|
|
$effortXL->setLabel('XL');
|
|
$manager->persist($effortXL);
|
|
|
|
$effortXXL = new TaskEffort();
|
|
$effortXXL->setLabel('XXL');
|
|
$manager->persist($effortXXL);
|
|
|
|
// Task Priorities
|
|
$priorityLow = new TaskPriority();
|
|
$priorityLow->setLabel('Basse');
|
|
$priorityLow->setColor('#222783');
|
|
$manager->persist($priorityLow);
|
|
|
|
$priorityMedium = new TaskPriority();
|
|
$priorityMedium->setLabel('Moyen');
|
|
$priorityMedium->setColor('#FF8F00');
|
|
$manager->persist($priorityMedium);
|
|
|
|
$priorityHigh = new TaskPriority();
|
|
$priorityHigh->setLabel('Haute');
|
|
$priorityHigh->setColor('#C62828');
|
|
$manager->persist($priorityHigh);
|
|
|
|
// Task Types
|
|
$typePassword = new TaskType();
|
|
$typePassword->setLabel('Gestion mdp');
|
|
$typePassword->setColor('#C62828');
|
|
$manager->persist($typePassword);
|
|
|
|
$typeAuth = new TaskType();
|
|
$typeAuth->setLabel('Connexion');
|
|
$typeAuth->setColor('#FF8F00');
|
|
$manager->persist($typeAuth);
|
|
|
|
$typeCalendar = new TaskType();
|
|
$typeCalendar->setLabel('Calendrier');
|
|
$typeCalendar->setColor('#222783');
|
|
$manager->persist($typeCalendar);
|
|
|
|
// Task Groups
|
|
$groupFrontend = new TaskGroup();
|
|
$groupFrontend->setTitle('Frontend');
|
|
$groupFrontend->setColor('#4A90D9');
|
|
$groupFrontend->setProject($projectSirh);
|
|
$manager->persist($groupFrontend);
|
|
|
|
$groupBackend = new TaskGroup();
|
|
$groupBackend->setTitle('Backend');
|
|
$groupBackend->setColor('#26A69A');
|
|
$groupBackend->setProject($projectSirh);
|
|
$manager->persist($groupBackend);
|
|
|
|
// Tasks
|
|
$task1 = new Task();
|
|
$task1->setTitle('Création d\'une page de login');
|
|
$task1->setStatus($statusTodo);
|
|
$task1->setEffort($effortXXL);
|
|
$task1->setPriority($priorityLow);
|
|
$task1->setAssignee($admin);
|
|
$task1->setGroup($groupFrontend);
|
|
$task1->setProject($projectSirh);
|
|
$task1->addType($typePassword);
|
|
$manager->persist($task1);
|
|
|
|
$task2 = new Task();
|
|
$task2->setTitle('Création d\'une page de login');
|
|
$task2->setStatus($statusTodo);
|
|
$task2->setEffort($effortL);
|
|
$task2->setPriority($priorityHigh);
|
|
$task2->setAssignee($admin);
|
|
$task2->setGroup($groupFrontend);
|
|
$task2->setProject($projectSirh);
|
|
$task2->addType($typeAuth);
|
|
$manager->persist($task2);
|
|
|
|
$task3 = new Task();
|
|
$task3->setTitle('Création d\'une page de login');
|
|
$task3->setStatus($statusInProgress);
|
|
$task3->setEffort($effortXXL);
|
|
$task3->setPriority($priorityLow);
|
|
$task3->setAssignee($admin);
|
|
$task3->setGroup($groupBackend);
|
|
$task3->setProject($projectSirh);
|
|
$task3->addType($typePassword);
|
|
$manager->persist($task3);
|
|
|
|
$task4 = new Task();
|
|
$task4->setTitle('Création d\'une page de login');
|
|
$task4->setStatus($statusBlocked);
|
|
$task4->setEffort($effortXXL);
|
|
$task4->setPriority($priorityLow);
|
|
$task4->setAssignee($admin);
|
|
$task4->setProject($projectSirh);
|
|
$task4->addType($typePassword);
|
|
$manager->persist($task4);
|
|
|
|
$task5 = new Task();
|
|
$task5->setTitle('Création d\'une page de login');
|
|
$task5->setStatus($statusReview);
|
|
$task5->setEffort($effortXXL);
|
|
$task5->setPriority($priorityMedium);
|
|
$task5->setAssignee($admin);
|
|
$task5->setProject($projectSirh);
|
|
$task5->addType($typeCalendar);
|
|
$manager->persist($task5);
|
|
|
|
$task6 = new Task();
|
|
$task6->setTitle('Création d\'une page de login');
|
|
$task6->setStatus($statusDone);
|
|
$task6->setEffort($effortXXL);
|
|
$task6->setPriority($priorityHigh);
|
|
$task6->setAssignee($admin);
|
|
$task6->setProject($projectSirh);
|
|
$task6->addType($typeAuth);
|
|
$manager->persist($task6);
|
|
|
|
$manager->flush();
|
|
}
|
|
}
|