Added quiz new features
This commit is contained in:
85
app/Http/Controllers/Admin/DailyQuestController.php
Normal file
85
app/Http/Controllers/Admin/DailyQuestController.php
Normal file
@@ -0,0 +1,85 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\DailyQuest;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class DailyQuestController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$quests = \App\Models\DailyQuest::latest()->paginate(15);
|
||||
|
||||
// Upgraded Bank of Smart Suggestions (Hardcore Focused)
|
||||
$suggestions = [
|
||||
// --- EXTREME CHALLENGES ---
|
||||
['title' => 'اسطوره لیگ: پیروزی در ۵۰ دوئل', 'quest_type' => 'duel_win', 'required_amount' => 50, 'reward_xp' => 4000],
|
||||
['title' => 'ماراتن تستزنی: پاسخ به ۵۰۰ تست', 'quest_type' => 'answer_tests', 'required_amount' => 500, 'reward_xp' => 3500],
|
||||
['title' => 'کمالگرا: کسب نمره کامل در ۵ آزمون', 'quest_type' => 'perfect_score', 'required_amount' => 5, 'reward_xp' => 2500],
|
||||
|
||||
// --- HARD CHALLENGES ---
|
||||
['title' => 'مبارز خستگیناپذیر: پیروزی در ۲۰ دوئل', 'quest_type' => 'duel_win', 'required_amount' => 20, 'reward_xp' => 1500],
|
||||
['title' => 'چالش حقوقدان: پاسخ به ۲۵۰ تست', 'quest_type' => 'answer_tests', 'required_amount' => 250, 'reward_xp' => 1200],
|
||||
['title' => 'دقت بالا: کسب نمره کامل در ۳ آزمون', 'quest_type' => 'perfect_score', 'required_amount' => 3, 'reward_xp' => 1200],
|
||||
['title' => 'پیروزی در ۱۰ دوئل متوالی (کاپ نقره)', 'quest_type' => 'duel_win', 'required_amount' => 10, 'reward_xp' => 700],
|
||||
|
||||
// --- MEDIUM CHALLENGES (For balance) ---
|
||||
['title' => 'گرمکردن: پیروزی در ۵ دوئل', 'quest_type' => 'duel_win', 'required_amount' => 5, 'reward_xp' => 300],
|
||||
['title' => 'مرور روزانه: پاسخ به ۵۰ تست', 'quest_type' => 'answer_tests', 'required_amount' => 50, 'reward_xp' => 250],
|
||||
['title' => 'کسب نمره کامل در ۱ آزمون', 'quest_type' => 'perfect_score', 'required_amount' => 1, 'reward_xp' => 350],
|
||||
];
|
||||
|
||||
return view('admin.daily-quests.index', compact('quests', 'suggestions'));
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
return view('admin.daily-quests.create');
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
$validated = $request->validate([
|
||||
'title' => 'required|string|max:255',
|
||||
'quest_type' => 'required|string|in:duel_win,answer_tests,perfect_score',
|
||||
'required_amount' => 'required|integer|min:1',
|
||||
'reward_xp' => 'required|integer|min:10',
|
||||
]);
|
||||
|
||||
$validated['is_active'] = $request->has('is_active'); // <-- Catch the switch
|
||||
|
||||
DailyQuest::create($validated);
|
||||
|
||||
return redirect()->route('daily-quests.index')->with('success', 'چالش روزانه با موفقیت ایجاد شد.');
|
||||
}
|
||||
|
||||
public function update(Request $request, DailyQuest $daily_quest)
|
||||
{
|
||||
$validated = $request->validate([
|
||||
'title' => 'required|string|max:255',
|
||||
'quest_type' => 'required|string|in:duel_win,answer_tests,perfect_score',
|
||||
'required_amount' => 'required|integer|min:1',
|
||||
'reward_xp' => 'required|integer|min:10',
|
||||
]);
|
||||
|
||||
$validated['is_active'] = $request->has('is_active'); // <-- Catch the switch
|
||||
|
||||
$daily_quest->update($validated);
|
||||
|
||||
return redirect()->route('daily-quests.index')->with('success', 'چالش روزانه با موفقیت ویرایش شد.');
|
||||
}
|
||||
|
||||
|
||||
public function edit(DailyQuest $daily_quest)
|
||||
{
|
||||
return view('admin.daily-quests.update', compact('daily_quest'));
|
||||
}
|
||||
|
||||
public function destroy(DailyQuest $daily_quest)
|
||||
{
|
||||
$daily_quest->delete();
|
||||
return redirect()->route('daily-quests.index')->with('success', 'چالش روزانه حذف شد.');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user