From 686294472644cbc00c1d1422f8f4b81302606018 Mon Sep 17 00:00:00 2001 From: Matthieu Date: Thu, 19 Mar 2026 10:36:22 +0100 Subject: [PATCH] feat : add Zimbra config and calendar task fixtures Co-Authored-By: Claude Sonnet 4.6 --- src/DataFixtures/AppFixtures.php | 43 ++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/src/DataFixtures/AppFixtures.php b/src/DataFixtures/AppFixtures.php index fa1b48c..2236b02 100644 --- a/src/DataFixtures/AppFixtures.php +++ b/src/DataFixtures/AppFixtures.php @@ -11,10 +11,13 @@ use App\Entity\Task; use App\Entity\TaskEffort; use App\Entity\TaskGroup; use App\Entity\TaskPriority; +use App\Entity\TaskRecurrence; use App\Entity\TaskStatus; use App\Entity\TaskTag; use App\Entity\TimeEntry; use App\Entity\User; +use App\Entity\ZimbraConfiguration; +use App\Enum\RecurrenceType; use DateTimeImmutable; use DateTimeZone; use Doctrine\Bundle\FixturesBundle\Fixture; @@ -274,6 +277,9 @@ class AppFixtures extends Fixture $task2->setGroup($groupFrontend); $task2->setProject($projectSirh); $task2->addTag($tagAuth); + $task2->setScheduledStart(new DateTimeImmutable('next monday 09:00')); + $task2->setScheduledEnd(new DateTimeImmutable('next monday 17:00')); + $task2->setSyncToCalendar(false); $manager->persist($task2); $task3 = new Task(); @@ -308,6 +314,8 @@ class AppFixtures extends Fixture $task5->setAssignee($userCharlie); $task5->setProject($projectSirh); $task5->addTag($tagCalendar); + $task5->setDeadline(new DateTimeImmutable('+2 weeks')); + $task5->setSyncToCalendar(false); $manager->persist($task5); $task6 = new Task(); @@ -414,6 +422,8 @@ class AppFixtures extends Fixture $taskErp3->setAssignee($admin); $taskErp3->setGroup($groupErpFacturation); $taskErp3->setProject($projectErp); + $taskErp3->setDeadline(new DateTimeImmutable('+1 month')); + $taskErp3->setSyncToCalendar(false); $manager->persist($taskErp3); $taskErp4 = new Task(); @@ -650,6 +660,39 @@ class AppFixtures extends Fixture // Link a task to a client ticket $task3->setClientTicket($ticket1); + // ============================================= + // Zimbra Configuration + // ============================================= + $zimbraConfig = new ZimbraConfiguration(); + $zimbraConfig->setServerUrl('https://mail.ovh.com'); + $zimbraConfig->setUsername('lesstime@ovh.fr'); + $zimbraConfig->setCalendarPath('/dav/lesstime@ovh.fr/Calendar/'); + $zimbraConfig->setEnabled(false); + $manager->persist($zimbraConfig); + + // ============================================= + // Task Recurrence — exemple hebdomadaire + // ============================================= + $recurrence = new TaskRecurrence(); + $recurrence->setType(RecurrenceType::Weekly); + $recurrence->setInterval(1); + $recurrence->setDaysOfWeek(['monday', 'wednesday', 'friday']); + $manager->persist($recurrence); + + $taskRecurring = new Task(); + $taskRecurring->setNumber(7); + $taskRecurring->setTitle('Réunion de suivi hebdomadaire'); + $taskRecurring->setStatus($statusTodo); + $taskRecurring->setEffort($effortS); + $taskRecurring->setPriority($priorityMedium); + $taskRecurring->setAssignee($admin); + $taskRecurring->setProject($projectSirh); + $taskRecurring->setScheduledStart(new DateTimeImmutable('next monday 10:00')); + $taskRecurring->setScheduledEnd(new DateTimeImmutable('next monday 10:30')); + $taskRecurring->setSyncToCalendar(false); + $taskRecurring->setRecurrence($recurrence); + $manager->persist($taskRecurring); + $manager->flush(); } }