<?php

return [
  'pattern' => 'request-project-creation.json',
  'method' => 'POST',
  'action' => function () {
    $json = file_get_contents('php://input');
    $data = json_decode($json);

    $user = kirby()->user();    

    $client = kirby()->user()->client()->toPage()->uuid();

    $projectData = [
      "slug" => esc(Str::slug($data->title)),
      "template" => "project", 
      "content" => [
        "title" => esc($data->title),
        "requestDetails" => esc("Demande de " . kirby()->user()->name() . " (" . kirby()->user()->email() . ") : \n\n" . $data->details),
        "client" => [$client],
        "isClientRequest" => "true",
        "isDTLEnabled" => esc($data->isDTLEnabled)
      ]
    ];

    $projects = page("projects");
    try {
      $newProject = $projects->createChild($projectData);

      $date = new DateTime();
      $formattedDate = $date->format(DateTime::ISO8601);

      $notificationData = [
        "location" => [
          "page" => $newProject
        ],
        "date" => (string) $formattedDate,
        "text" => nl2br(esc($data->details)),
        "author" => $user,
        "id" => Str::uuid(),
        "type" => "project-request",
      ];

      $newProject->createNotification($notificationData);

      return [
        "status" => "success",
      ];
    } catch (\Throwable $th) {
      return [
        "status" => "error",
        "message" => $th->getMessage() . " in " . $th->getFile() . " line " . $th->getLine()
      ];
    }
  }
];
