HOME


Mini Shell 1.0
Redirecting to https://devs.lapieza.net/iniciar-sesion Redirecting to https://devs.lapieza.net/iniciar-sesion.
DIR: /var/www/devs.lapieza.net/app/Http/Controllers/Api/V2/Seller/
Upload File :
Current File : /var/www/devs.lapieza.net/app/Http/Controllers/Api/V2/Seller/SellerPackageController.php
<?php

namespace App\Http\Controllers\Api\V2\Seller;

use App\Http\Resources\V2\Seller\SellerPackageResource;
use App\Models\SellerPackage;
use App\Models\SellerPackagePayment;
use App\Utility\PayfastUtility;
use Illuminate\Http\Request;

class SellerPackageController extends Controller {
    public function seller_packages_list() {
        $user = auth()->user();
        if (addon_is_activated('seller_subscription')) {

            $actual_package_id = $user->shop->seller_package_id ?? null;

            if(!is_null($actual_package_id)){
                $free_package = SellerPackage::where('name', 'Gratis')->first();
                $seller_packages = SellerPackage::whereKeyNot($free_package->id)->get();
                return SellerPackageResource::collection($seller_packages);
            }

            $seller_packages = SellerPackage::all();

            return SellerPackageResource::collection($seller_packages);
        }

        return $this->failed(translate('Package is not available'));
    }

    public function purchase_free_package(Request $request) {
        $data['seller_package_id'] = $request->package_id;
        $data['payment_method'] = $request->payment_option;
        $seller_package = SellerPackage::findOrFail($request->seller_package_id);
        if ($seller_package->amount == 0) {
            seller_purchase_payment_done(auth()->user()->id, $request->package_id, $request->amount, 'Free Package', null);
            return $this->success(translate('Package purchasing successful'));
        } elseif (
            auth()->user()->shop->seller_package != null &&
            $seller_package->product_upload_limit < auth()->user()->shop->seller_package->product_upload_limit
        ) {
            return $this->failed(translate('You have more uploaded products than this package limit. You need to remove excessive products to downgrade.'));
        }
    }

    public function purchase_package_offline(Request $request) {
        $seller_package = SellerPackage::findOrFail($request->package_id);
        if (
            auth()->user()->shop->seller_package != null &&
            $seller_package->product_upload_limit < auth()->user()->shop->seller_package->product_upload_limit
        ) {
            return $this->failed(translate('Tienes mas productos que el limite de este paquete. Elimina los productos excesivos para bajar tu paquete.'));
        }

        $seller_package = new SellerPackagePayment;
        $seller_package->user_id = auth()->user()->id;
        $seller_package->seller_package_id = $request->package_id;
        $seller_package->payment_method = "Transferencia Bancaria";
        $seller_package->payment_details = json_encode($request->all());
        $seller_package->approval = 0;
        $seller_package->offline_payment = 1;
        $seller_package->reciept = $request->photo;
        $seller_package->save();

        return $this->success(translate('Offline payment has been done. Please wait for response.'));
    }
}