feat: meal post type
Laravel CI-CD / Tests Unitaires (push) Failing after 19s Details
Laravel CI-CD / Build & Push Docker (push) Has been skipped Details
Laravel CI-CD / Deploy via Portainer (push) Has been skipped Details

This commit is contained in:
Leon Morival 2026-05-17 19:27:32 +02:00
parent bfe11fea98
commit c9b51f3225
5 changed files with 50 additions and 1 deletions

View File

@ -0,0 +1,15 @@
<?php
namespace App\Enums;
enum MealPostType: string
{
case BREAKFAST = 'breakfast';
case LUNCH = 'lunch';
case DINNER = 'dinner';
case BRUNCH = 'brunch';
case SNACK = 'snack';
case DRINK = 'drink';
case SUPPLEMENT = "supplement";
case OTHER = "other";
}

View File

@ -2,6 +2,7 @@
namespace App\Http\Requests;
use App\Enums\MealPostType;
use App\Enums\MealPostVisibility;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
@ -22,7 +23,8 @@ class MealPostsRequest extends FormRequest
'fats' => ['nullable', 'numeric', 'min:0'],
'title' => [$isCreating ? 'required' : 'sometimes', 'string', 'max:255'],
'eaten_at' => [$isCreating ? 'required' : 'sometimes', 'date'],
'visibility' => ['sometimes', Rule::enum(MealPostVisibility::class)],
'type' => [$isCreating ? 'required' : 'sometimes', Rule::enum(MealPostType::class)],
'visibility' => [$isCreating ? 'required' :'sometimes', Rule::enum(MealPostVisibility::class)],
];
}

View File

@ -25,6 +25,7 @@ class MealPostsResource extends JsonResource
'fats' => $this->fats,
'title' => $this->title,
'visibility' => $this->visibility,
'type' => $this->type,
'eatenAt' => $this->eaten_at,
'createdAt' => $this->created_at,
'updatedAt' => $this->updated_at,

View File

@ -2,6 +2,7 @@
namespace App\Models;
use App\Enums\MealPostType;
use App\Enums\MealPostVisibility;
use Illuminate\Database\Eloquent\Concerns\HasUlids;
use Illuminate\Database\Eloquent\Factories\HasFactory;
@ -24,6 +25,7 @@ class MealPosts extends Model
'title',
'eaten_at',
'visibility',
'type',
];
protected $attributes = [
@ -40,6 +42,7 @@ class MealPosts extends Model
return [
'eaten_at' => 'datetime',
'visibility' => MealPostVisibility::class,
'type' => MealPostType::class
];
}
}

View File

@ -0,0 +1,28 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('meal_posts', function (Blueprint $table) {
$table->string("type")->default('breakfast');
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('meal_posts', function (Blueprint $table) {
$table->dropColumn('type');
});
}
};