reset to setup module state

Remove Task Manager implementation to match `# Setup module` in module.md.
Backend src/ reduced to Kernel.php + empty Entity/, all migrations deleted,
database dropped and recreated. Frontend components/views/services/stores
removed, App.vue/router/style.css reduced to skeletons. CLAUDE.md shortened
to Setup-stand. Old backend/plan.md, plan2.md removed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Marek Lenczewski
2026-04-11 13:15:50 +02:00
parent 2cb08331e4
commit 9246ccb5e6
56 changed files with 34 additions and 3951 deletions

View File

@@ -1,150 +0,0 @@
<?php
namespace App\Service;
use App\DTO\Request\CreateSchemaRequest;
use App\DTO\Request\UpdateSchemaRequest;
use App\Entity\Task;
use App\Entity\TaskSchema;
use App\Enum\TaskSchemaStatus;
use App\Enum\TaskSchemaType;
use App\Repository\CategoryRepository;
use App\Repository\TaskRepository;
use Doctrine\ORM\EntityManagerInterface;
class TaskSchemaManager
{
public function __construct(
private EntityManagerInterface $em,
private CategoryRepository $categoryRepository,
private TaskRepository $taskRepository,
private TaskSynchronizer $taskSynchronizer,
) {}
public function createSchema(CreateSchemaRequest $request): TaskSchema|array
{
$schema = new TaskSchema();
$schema->setName($request->name ?? '');
$this->applyFields($schema, $request);
$this->resolveCategory($schema, $request);
$this->applyDefaults($schema);
$this->em->persist($schema);
$this->em->flush();
if ($schema->getTaskType() === TaskSchemaType::Single) {
$tasks = $this->createSingleTasks($schema);
$this->em->remove($schema);
$this->em->flush();
return $tasks;
}
return $schema;
}
public function updateSchema(TaskSchema $schema, UpdateSchemaRequest $request): TaskSchema
{
if ($request->name !== null) {
$schema->setName($request->name);
}
$this->applyFields($schema, $request);
$this->resolveCategory($schema, $request);
$this->applyDefaults($schema);
$this->em->flush();
$this->taskSynchronizer->syncForSchema($schema);
return $schema;
}
public function deleteSchema(TaskSchema $schema, bool $deleteTasks = false): void
{
if ($deleteTasks) {
$tasks = $this->taskRepository->findBy(['schema' => $schema]);
foreach ($tasks as $task) {
$this->em->remove($task);
}
}
$this->em->remove($schema);
$this->em->flush();
}
private function applyFields(TaskSchema $schema, CreateSchemaRequest|UpdateSchemaRequest $request): void
{
if ($request->status !== null) {
$status = TaskSchemaStatus::tryFrom($request->status);
if ($status !== null) {
$schema->setStatus($status);
}
}
if ($request->type !== null) {
$taskType = TaskSchemaType::tryFrom($request->type);
if ($taskType !== null) {
$schema->setTaskType($taskType);
}
}
$schema->setStartDate($request->startDate !== null ? new \DateTime($request->startDate) : null);
$schema->setEndDate($request->endDate !== null ? new \DateTime($request->endDate) : null);
$schema->setDays($request->days);
}
private function resolveCategory(TaskSchema $schema, UpdateSchemaRequest|CreateSchemaRequest $request): void
{
if ($request instanceof UpdateSchemaRequest) {
if ($request->hasCategoryId) {
if ($request->categoryId !== null) {
$category = $this->categoryRepository->find($request->categoryId);
$schema->setCategory($category);
} else {
$schema->setCategory(null);
}
}
} else {
if ($request->categoryId !== null) {
$category = $this->categoryRepository->find($request->categoryId);
$schema->setCategory($category);
}
}
}
private function applyDefaults(TaskSchema $schema): void
{
if ($schema->getTaskType() !== TaskSchemaType::Single && $schema->getStartDate() === null) {
$schema->setStartDate(new \DateTime('today'));
}
}
/**
* @return Task[]
*/
private function createSingleTasks(TaskSchema $schema): array
{
$days = $schema->getDays()['year'] ?? [];
$tasks = [];
foreach ($days as $yd) {
$month = $yd['month'] ?? 1;
$day = $yd['day'] ?? 1;
$date = new \DateTime(sprintf('%d-%02d-%02d', (int) date('Y'), $month, $day));
$task = new Task();
$task->setName($schema->getName());
$task->setCategory($schema->getCategory());
$task->setDate($date);
$this->em->persist($task);
$tasks[] = $task;
}
$this->em->flush();
return $tasks;
}
}