Files
law-api/app/Http/Controllers/Admin/DailyQuestController.php
2026-08-19 12:18:35 +03:30

86 lines
3.8 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?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', 'چالش روزانه حذف شد.');
}
}