<?php

namespace App\Http\Controllers\Frontend;

use App\Facades\ProjectService;
use App\Http\Controllers\Controller;
use App\Http\Requests\ProjectRequest;
use App\Http\Resources\Projects\ProjectResource;
use Illuminate\Support\Facades\Auth;

class ProjectController extends Controller
{
    public function createProject(ProjectRequest $request)
    {
        $data = $request->validated();
        $user = Auth::user();

        $project = ProjectService::createProject($user, $data);

        return new ProjectResource($project);
    }

    public function updateProject(ProjectRequest $request, int $projectId)
    {
        $data = $request->validated();
        $user = Auth::user();

        $project = ProjectService::updateProject($user, $data, $projectId);

        return new ProjectResource($project);
    }

    public function getProjects()
    {
        $user = Auth::user();
        $projects = ProjectService::getProjects($user);

        return ProjectResource::collection($projects);
    }

    public function getProject(int $projectId)
    {
        $user = Auth::user();

        $project = ProjectService::getProject($user, $projectId);

        return new ProjectResource($project);
    }

    public function deleteProject(int $projectId)
    {
        $user = Auth::user();

        $project = ProjectService::deleteProject($user, $projectId);

        return response()->json(['success' => $project != null]);
    }
}
