cms-frontend/app/Http/Controllers/CardMemberController.php

164 lines
4.6 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Services\Api\CardMemberService;
use Illuminate\Http\Request;
class CardMemberController extends Controller
{
protected $cardMemberService;
public function __construct(CardMemberService $cardMemberService)
{
$this->cardMemberService = $cardMemberService;
}
public function index()
{
$response = $this->cardMemberService->getAllMembers();
if (!$response['success']) {
return back()->with('error', $response['message']);
}
return view('pages.member-management.index', [
'members' => $response['data']
]);
}
public function create()
{
$cardTypes = $this->cardMemberService->getCardTypes();
return view('pages.member-management.create', [
'cardTypes' => $cardTypes['data'] ?? []
]);
}
public function store(Request $request)
{
$response = $this->cardMemberService->createMember($request->all());
if (!$response['success']) {
return back()->withInput()->with('error', $response['message']);
}
return redirect()->route('card-members.index')
->with('success', 'Card member created successfully');
}
public function edit($id)
{
$memberResponse = $this->cardMemberService->getMember($id);
$cardTypesResponse = $this->cardMemberService->getCardTypes();
if (!$memberResponse['success']) {
return back()->with('error', $memberResponse['message']);
}
return view('pages.member-management.edit', [
'member' => $memberResponse['data'],
'cardTypes' => $cardTypesResponse['data'] ?? []
]);
}
public function update(Request $request, $id)
{
$response = $this->cardMemberService->updateMember($id, $request->all());
if (!$response['success']) {
return back()->withInput()->with('error', $response['message']);
}
return redirect()->route('card-members.index')
->with('success', 'Card member updated successfully');
}
public function destroy($id)
{
$response = $this->cardMemberService->deleteMember($id);
if (!$response['success']) {
return back()->with('error', $response['message']);
}
return redirect()->route('card-members.index')
->with('success', 'Card member deleted successfully');
}
public function cardTypes()
{
$response = $this->cardMemberService->getCardTypes();
if (!$response['success']) {
return back()->with('error', $response['message']);
}
return view('pages.add-card-types', [
'cardTypes' => $response['data']
]);
}
public function storeCardType(Request $request)
{
$response = $this->cardMemberService->createCardType($request->all());
if (!$response['success']) {
return back()->withInput()->with('error', $response['message']);
}
return redirect()->route('card-types.index')
->with('success', 'Card type created successfully');
}
public function updateCardType(Request $request, $id)
{
$response = $this->cardMemberService->updateCardType($id, $request->all());
if (!$response['success']) {
return back()->withInput()->with('error', $response['message']);
}
return redirect()->route('card-types.index')
->with('success', 'Card type updated successfully');
}
public function deleteCardType($id)
{
$response = $this->cardMemberService->deleteCardType($id);
if (!$response['success']) {
return back()->with('error', $response['message']);
}
return redirect()->route('card-types.index')
->with('success', 'Card type deleted successfully');
}
public function topUpHistory(Request $request)
{
$memberId = $request->query('member_id');
$response = $this->cardMemberService->getTopUpHistory($memberId);
if (!$response['success']) {
return back()->with('error', $response['message']);
}
return view('pages.top-up', [
'history' => $response['data']
]);
}
public function processTopUp(Request $request)
{
$response = $this->cardMemberService->topUp($request->all());
if (!$response['success']) {
return back()->withInput()->with('error', $response['message']);
}
return redirect()->route('top-up.index')
->with('success', 'Top-up processed successfully');
}
}