<?php
/**
 * Created by IntelliJ IDEA.
 * User: kelyliang
 * Date: 2024/3/20
 * Time: 下午 02:32
 */

namespace App\Http\Controllers\API;


use App\Http\Controllers\Controller;
use App\Http\Requests\API\Company\CreateOrUpdateRequest;
use App\Http\Resources\API\CompanyResource;
use App\Models\Company;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class CompanyController extends Controller
{
    public function index(Request $request)
    {

        if(Auth::user()->super_admin){
            $company=Company::query()->filter($request->all())->get();
            return CompanyResource::collection($company);
        }else{
            $company=Auth::user()->company;
            return new CompanyResource($company);
        }

    }


    public function store(CreateOrUpdateRequest $request)
    {
        $company = new Company();

        $company->fill([
            ...$request->all(),
        ]);

        $company->save();

        return $this->created();
    }

    public function show(string $id)
    {
        $companyId=Auth::user()->company->id;
        if(empty(Auth::user()->super_admin)){
            if($companyId!=$id){
                return $this->forbidden("You are not a user under this company");
            }
        }

        $field = Company::query()->findOrFail($id);

        return new CompanyResource($field);
    }

    public function update(Request $request,string $id){
        $company = Company::findOrFail($id);

        $company->email =$request->email;
        $company->save();

        return $this->noContent();
    }


    public function destroy(string $id)
    {
        $company = Company::findOrFail($id);
        $company->delete();

        return $this->noContent();
    }
}