<?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();
}
}