feat: add breath_hold & duration

This commit is contained in:
2025-09-13 16:54:17 +03:30
parent 0b73e9d095
commit c8bf4011e2
4 changed files with 164 additions and 38 deletions
@@ -15,7 +15,8 @@ public function createTemplate(Request $request)
'name' => 'required|string',
'inhale' => 'required|integer|min:1',
'exhale' => 'required|integer|min:1',
'repeat' => 'required|integer|min:1',
'breath_hold' => 'required|integer|min:0',
'duration' => 'sometimes|integer|min:10'
]);
$template = BreathingTemplate::create([
@@ -23,7 +24,8 @@ public function createTemplate(Request $request)
'name' => $data['name'],
'inhale' => $data['inhale'],
'exhale' => $data['exhale'],
'repeat' => $data['repeat'],
'breath_hold'=> $data['breath_hold'] ?? 0,
'duration'=> $data['duration'] ?? 60,
]);
return response()->json(['message' => 'Template created', 'template' => $template]);
@@ -39,7 +41,8 @@ public function updateTemplate(Request $request, $id)
'name' => 'sometimes|required|string',
'inhale' => 'sometimes|required|integer|min:1',
'exhale' => 'sometimes|required|integer|min:1',
'repeat' => 'sometimes|required|integer|min:1',
'breath_hold' => 'sometimes|integer|min:0',
'duration' => 'sometimes|integer|min:10',
]);
$template->update($data);
@@ -72,44 +75,46 @@ public function getTemplates()
return response()->json($templates);
}
public function store(Request $request)
{
$data = $request->validate([
'subject' => 'required|string',
'duration' => 'required|integer',
'created_at' => 'nullable|date',
]);
// public function store(Request $request)
// {
// $data = $request->validate([
// 'subject' => 'required|string',
// 'duration' => 'required|integer',
// 'created_at' => 'nullable|date',
// ]);
$user = auth()->user();
// $user = auth()->user();
$exercise = BreathingExercise::create([
'user_id' => $user->id,
'subject' => $data['subject'],
'duration' => $data['duration'],
'created_at' => $data['created_at'] ?? now(),
]);
// $exercise = BreathingExercise::create([
// 'user_id' => $user->id,
// 'subject' => $data['subject'],
// 'duration' => $data['duration'],
// 'created_at' => $data['created_at'] ?? now(),
// ]);
// Give XP (e.g., +10 per session)
if ($data['created_at'] == null) {
$user->increment('xp', 10);
}
// // Give XP (e.g., +10 per session)
// if ($data['created_at'] == null) {
// $user->increment('xp', 10);
// }
return response()->json([
'message' => 'Exercise saved',
'exercise' => $exercise,
'xp' => $user->xp
]);
}
// return response()->json([
// 'message' => 'Exercise saved',
// 'exercise' => $exercise,
// 'xp' => $user->xp
// ]);
// }
public function completeSession(Request $request)
{
$data = $request->validate([
'template_id' => 'required|exists:breathing_templates,id',
'duration' => 'sometimes|integer|min:10'
]);
$session = UserBreathingSession::create([
'user_id' => auth()->id(),
'template_id' => $data['template_id'],
'duration' => $data['duration'] ?? $template->duration,
]);
// Increase XP