/home/awneajlw/www/safeeyesjewelers.com/app/Http/Controllers/Admin/SubscribeController.php
<?php

namespace App\Http\Controllers\Admin;

use Carbon\Carbon;
use App\Models\User;
use App\Models\Subscribe;
use Illuminate\Http\Request;
use Yajra\DataTables\DataTables;
use App\Http\Controllers\Controller;

class SubscribeController extends Controller
{
    public function index()
    {
        $subscribe = Subscribe::count();
        return view('admin.subscribe.index',compact('subscribe'));
    }


    // yajra pagination
    public function getSubscribe(Request $request)
    {
        if ($request->ajax()) {

            $fromDate = $request->input('from_date');
            $toDate = $request->input('to_date');

            if($fromDate == null && $toDate == null){

                $data = Subscribe::get();
            }

            else{
                //Date Filter
                $data = Subscribe::whereBetween('created_at', [$fromDate, $toDate])->get();
            }

            return Datatables::of($data)
                ->addIndexColumn()
              ->addColumn('image', function ($row) {
                    if ($row->image) {
                        $imageUrl = asset('storage/' . $row->image); // ✅ Correct public URL
                        return '<img src="' . $imageUrl . '" width="150px">';
                    } else {
                        return 'No image';
                    }
                })
                 ->addColumn('action', function ($row) {

                    $btn =  '<a class="btn btn-sm btn-info ml-2 my-3" href="'.url('/update-subscribe/'.$row->id).'" role="button"><i class="fa fa-pen"></i></a>';
                    return $btn;
                })
                    ->addColumn('created', function ($row) {

                    $created_at = $row->created_at;

                    $formatted_date = Carbon::parse($created_at)->format('Y-m-d H:i:s');
                    return $formatted_date;
                })
                ->rawColumns(['action','image', 'created'])
                ->make(true);

        }
    }


     // update user
    public function updateSubscribe($id){

        $subscribe = Subscribe::find($id);

        if($subscribe){
            $user = User::where('email', $subscribe->email)->first();
            $user->trial_ends_at = Carbon::now()->addDays(30);
            $user->update();

            $subscribe->status = 'Done';
            $subscribe->update();
        }

        return redirect()->back();

    }
}