feat: implement HasValues trait for enums and update related code for consistency
Some checks failed
tests / ci (pull_request) Has been cancelled
Some checks failed
tests / ci (pull_request) Has been cancelled
This commit is contained in:
parent
13d5ce5853
commit
b59804342b
@ -16,7 +16,7 @@ protected function profileRules(?int $userId = null): array
|
|||||||
'full_name' => ['required', 'string', 'max:150'],
|
'full_name' => ['required', 'string', 'max:150'],
|
||||||
'phone_number' => ['required', 'string', 'max:20'],
|
'phone_number' => ['required', 'string', 'max:20'],
|
||||||
'address' => ['required', 'string'],
|
'address' => ['required', 'string'],
|
||||||
'gender' => ['required', 'string', Rule::in(array_values(Gender::cases()))],
|
'gender' => ['required', 'string', Rule::in(Gender::values())],
|
||||||
'birth_date' => ['required', 'date'],
|
'birth_date' => ['required', 'date'],
|
||||||
'birth_place' => ['required', 'string', 'max:100'],
|
'birth_place' => ['required', 'string', 'max:100'],
|
||||||
];
|
];
|
||||||
|
|||||||
@ -2,8 +2,12 @@
|
|||||||
|
|
||||||
namespace App\Enums;
|
namespace App\Enums;
|
||||||
|
|
||||||
|
use App\Enums\Concerns\HasValues;
|
||||||
|
|
||||||
enum AttendanceStatus: string
|
enum AttendanceStatus: string
|
||||||
{
|
{
|
||||||
|
use HasValues;
|
||||||
|
|
||||||
case Present = 'present';
|
case Present = 'present';
|
||||||
case Absent = 'absent';
|
case Absent = 'absent';
|
||||||
|
|
||||||
|
|||||||
@ -2,8 +2,12 @@
|
|||||||
|
|
||||||
namespace App\Enums;
|
namespace App\Enums;
|
||||||
|
|
||||||
|
use App\Enums\Concerns\HasValues;
|
||||||
|
|
||||||
enum ClassMethod: string
|
enum ClassMethod: string
|
||||||
{
|
{
|
||||||
|
use HasValues;
|
||||||
|
|
||||||
case Online = 'online';
|
case Online = 'online';
|
||||||
case Offline = 'offline';
|
case Offline = 'offline';
|
||||||
case Hybrid = 'hybrid';
|
case Hybrid = 'hybrid';
|
||||||
|
|||||||
25
app/Enums/Concerns/HasValues.php
Normal file
25
app/Enums/Concerns/HasValues.php
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Enums\Concerns;
|
||||||
|
|
||||||
|
trait HasValues
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @return array<int, string>
|
||||||
|
*/
|
||||||
|
public static function values(): array
|
||||||
|
{
|
||||||
|
return array_column(self::cases(), 'value');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array<int, array{value: string, label: string}>
|
||||||
|
*/
|
||||||
|
public static function options(): array
|
||||||
|
{
|
||||||
|
return array_map(fn (self $case) => [
|
||||||
|
'value' => $case->value,
|
||||||
|
'label' => $case->label(),
|
||||||
|
], self::cases());
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -2,8 +2,12 @@
|
|||||||
|
|
||||||
namespace App\Enums;
|
namespace App\Enums;
|
||||||
|
|
||||||
|
use App\Enums\Concerns\HasValues;
|
||||||
|
|
||||||
enum FeedbackStatus: string
|
enum FeedbackStatus: string
|
||||||
{
|
{
|
||||||
|
use HasValues;
|
||||||
|
|
||||||
case Submitted = 'submitted';
|
case Submitted = 'submitted';
|
||||||
case InReview = 'in_review';
|
case InReview = 'in_review';
|
||||||
case Resolved = 'resolved';
|
case Resolved = 'resolved';
|
||||||
|
|||||||
@ -2,8 +2,12 @@
|
|||||||
|
|
||||||
namespace App\Enums;
|
namespace App\Enums;
|
||||||
|
|
||||||
|
use App\Enums\Concerns\HasValues;
|
||||||
|
|
||||||
enum FeedbackType: string
|
enum FeedbackType: string
|
||||||
{
|
{
|
||||||
|
use HasValues;
|
||||||
|
|
||||||
case Kritik = 'kritik';
|
case Kritik = 'kritik';
|
||||||
case Saran = 'saran';
|
case Saran = 'saran';
|
||||||
case Aduan = 'aduan';
|
case Aduan = 'aduan';
|
||||||
|
|||||||
@ -2,8 +2,12 @@
|
|||||||
|
|
||||||
namespace App\Enums;
|
namespace App\Enums;
|
||||||
|
|
||||||
|
use App\Enums\Concerns\HasValues;
|
||||||
|
|
||||||
enum Gender: string
|
enum Gender: string
|
||||||
{
|
{
|
||||||
|
use HasValues;
|
||||||
|
|
||||||
case Male = 'male';
|
case Male = 'male';
|
||||||
case Female = 'female';
|
case Female = 'female';
|
||||||
|
|
||||||
|
|||||||
@ -2,8 +2,12 @@
|
|||||||
|
|
||||||
namespace App\Enums;
|
namespace App\Enums;
|
||||||
|
|
||||||
|
use App\Enums\Concerns\HasValues;
|
||||||
|
|
||||||
enum LetterStatus: string
|
enum LetterStatus: string
|
||||||
{
|
{
|
||||||
|
use HasValues;
|
||||||
|
|
||||||
case Submitted = 'submitted';
|
case Submitted = 'submitted';
|
||||||
case InProcess = 'in_process';
|
case InProcess = 'in_process';
|
||||||
case Completed = 'completed';
|
case Completed = 'completed';
|
||||||
|
|||||||
@ -2,8 +2,12 @@
|
|||||||
|
|
||||||
namespace App\Enums;
|
namespace App\Enums;
|
||||||
|
|
||||||
|
use App\Enums\Concerns\HasValues;
|
||||||
|
|
||||||
enum PaymentStatus: string
|
enum PaymentStatus: string
|
||||||
{
|
{
|
||||||
|
use HasValues;
|
||||||
|
|
||||||
case Unpaid = 'unpaid';
|
case Unpaid = 'unpaid';
|
||||||
case Partial = 'partial';
|
case Partial = 'partial';
|
||||||
case Paid = 'paid';
|
case Paid = 'paid';
|
||||||
|
|||||||
@ -2,8 +2,12 @@
|
|||||||
|
|
||||||
namespace App\Enums;
|
namespace App\Enums;
|
||||||
|
|
||||||
|
use App\Enums\Concerns\HasValues;
|
||||||
|
|
||||||
enum RegistrationStatus: string
|
enum RegistrationStatus: string
|
||||||
{
|
{
|
||||||
|
use HasValues;
|
||||||
|
|
||||||
case Submitted = 'submitted';
|
case Submitted = 'submitted';
|
||||||
case Approved = 'approved';
|
case Approved = 'approved';
|
||||||
case Rejected = 'rejected';
|
case Rejected = 'rejected';
|
||||||
|
|||||||
@ -2,8 +2,12 @@
|
|||||||
|
|
||||||
namespace App\Enums;
|
namespace App\Enums;
|
||||||
|
|
||||||
|
use App\Enums\Concerns\HasValues;
|
||||||
|
|
||||||
enum Semester: string
|
enum Semester: string
|
||||||
{
|
{
|
||||||
|
use HasValues;
|
||||||
|
|
||||||
case odd = 'odd';
|
case odd = 'odd';
|
||||||
case even = 'even';
|
case even = 'even';
|
||||||
|
|
||||||
|
|||||||
@ -2,8 +2,12 @@
|
|||||||
|
|
||||||
namespace App\Enums;
|
namespace App\Enums;
|
||||||
|
|
||||||
|
use App\Enums\Concerns\HasValues;
|
||||||
|
|
||||||
enum StudentStatus: string
|
enum StudentStatus: string
|
||||||
{
|
{
|
||||||
|
use HasValues;
|
||||||
|
|
||||||
case Active = 'active';
|
case Active = 'active';
|
||||||
case OnLeave = 'on_leave';
|
case OnLeave = 'on_leave';
|
||||||
case Graduated = 'graduated';
|
case Graduated = 'graduated';
|
||||||
|
|||||||
@ -2,8 +2,12 @@
|
|||||||
|
|
||||||
namespace App\Enums;
|
namespace App\Enums;
|
||||||
|
|
||||||
|
use App\Enums\Concerns\HasValues;
|
||||||
|
|
||||||
enum SubmissionStatus: string
|
enum SubmissionStatus: string
|
||||||
{
|
{
|
||||||
|
use HasValues;
|
||||||
|
|
||||||
case NotSubmitted = 'not_submitted';
|
case NotSubmitted = 'not_submitted';
|
||||||
case Submitted = 'submitted';
|
case Submitted = 'submitted';
|
||||||
|
|
||||||
|
|||||||
@ -20,10 +20,7 @@ public function index(PaginatedRequest $request): Response
|
|||||||
{
|
{
|
||||||
return Inertia::render('feedback/index', [
|
return Inertia::render('feedback/index', [
|
||||||
'feedbacks' => $this->service->paginated($request->user(), ...$request->validatedWithDefaults()),
|
'feedbacks' => $this->service->paginated($request->user(), ...$request->validatedWithDefaults()),
|
||||||
'types' => array_map(fn (FeedbackType $type) => [
|
'types' => FeedbackType::options(),
|
||||||
'value' => $type->value,
|
|
||||||
'label' => $type->label(),
|
|
||||||
], FeedbackType::cases()),
|
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -27,7 +27,7 @@ public function rules(): array
|
|||||||
],
|
],
|
||||||
'academic_term_id' => ['required', 'integer', Rule::exists('academic_terms', 'id')],
|
'academic_term_id' => ['required', 'integer', Rule::exists('academic_terms', 'id')],
|
||||||
'class_name' => ['nullable', 'string', 'max:50'],
|
'class_name' => ['nullable', 'string', 'max:50'],
|
||||||
'method' => ['nullable', 'string', Rule::in(array_column(ClassMethod::cases(), 'value'))],
|
'method' => ['nullable', 'string', Rule::in(ClassMethod::values())],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -28,7 +28,7 @@ public function rules(): array
|
|||||||
->where('student_id', $this->input('student_id'))
|
->where('student_id', $this->input('student_id'))
|
||||||
->ignore($registration?->id),
|
->ignore($registration?->id),
|
||||||
],
|
],
|
||||||
'status' => ['nullable', 'string', Rule::in(array_column(RegistrationStatus::cases(), 'value'))],
|
'status' => ['nullable', 'string', Rule::in(RegistrationStatus::values())],
|
||||||
'approved_by' => ['nullable', 'integer', Rule::exists('lecturers', 'id')],
|
'approved_by' => ['nullable', 'integer', Rule::exists('lecturers', 'id')],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@ -38,7 +38,7 @@ function ($attribute, $value, $fail) {
|
|||||||
'semester' => [
|
'semester' => [
|
||||||
'required',
|
'required',
|
||||||
'string',
|
'string',
|
||||||
Rule::in(array_values(Semester::cases())),
|
Rule::in(Semester::values()),
|
||||||
Rule::unique('academic_terms')->where(function ($query) {
|
Rule::unique('academic_terms')->where(function ($query) {
|
||||||
return $query->where('name', $this->input('name'));
|
return $query->where('name', $this->input('name'));
|
||||||
})->ignore($this->route('academic_term')),
|
})->ignore($this->route('academic_term')),
|
||||||
|
|||||||
@ -43,7 +43,7 @@ public function rules(): array
|
|||||||
'full_name' => ['required', 'string', 'max:150'],
|
'full_name' => ['required', 'string', 'max:150'],
|
||||||
'phone_number' => ['required', 'string', 'max:20'],
|
'phone_number' => ['required', 'string', 'max:20'],
|
||||||
'address' => ['required', 'string'],
|
'address' => ['required', 'string'],
|
||||||
'gender' => ['required', 'string', Rule::in(array_values(Gender::cases()))],
|
'gender' => ['required', 'string', Rule::in(Gender::values())],
|
||||||
'birth_date' => ['required', 'date'],
|
'birth_date' => ['required', 'date'],
|
||||||
'birth_place' => ['required', 'string', 'max:100'],
|
'birth_place' => ['required', 'string', 'max:100'],
|
||||||
];
|
];
|
||||||
|
|||||||
@ -42,7 +42,7 @@ public function rules(): array
|
|||||||
'full_name' => ['required', 'string', 'max:150'],
|
'full_name' => ['required', 'string', 'max:150'],
|
||||||
'phone_number' => ['required', 'string', 'max:20'],
|
'phone_number' => ['required', 'string', 'max:20'],
|
||||||
'address' => ['required', 'string'],
|
'address' => ['required', 'string'],
|
||||||
'gender' => ['required', 'string', Rule::in(array_values(Gender::cases()))],
|
'gender' => ['required', 'string', Rule::in(Gender::values())],
|
||||||
'birth_date' => ['required', 'date'],
|
'birth_date' => ['required', 'date'],
|
||||||
'birth_place' => ['required', 'string', 'max:100'],
|
'birth_place' => ['required', 'string', 'max:100'],
|
||||||
|
|
||||||
|
|||||||
@ -43,7 +43,7 @@ public function rules(): array
|
|||||||
'full_name' => ['required', 'string', 'max:150'],
|
'full_name' => ['required', 'string', 'max:150'],
|
||||||
'phone_number' => ['required', 'string', 'max:20'],
|
'phone_number' => ['required', 'string', 'max:20'],
|
||||||
'address' => ['required', 'string'],
|
'address' => ['required', 'string'],
|
||||||
'gender' => ['required', 'string', Rule::in(array_values(Gender::cases()))],
|
'gender' => ['required', 'string', Rule::in(Gender::values())],
|
||||||
'birth_date' => ['required', 'date'],
|
'birth_date' => ['required', 'date'],
|
||||||
'birth_place' => ['required', 'string', 'max:100'],
|
'birth_place' => ['required', 'string', 'max:100'],
|
||||||
|
|
||||||
@ -72,7 +72,7 @@ public function rules(): array
|
|||||||
'status' => [
|
'status' => [
|
||||||
'nullable',
|
'nullable',
|
||||||
'string',
|
'string',
|
||||||
Rule::in(array_values(StudentStatus::cases())),
|
Rule::in(StudentStatus::values()),
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,7 +16,7 @@ public function authorize(): bool
|
|||||||
public function rules(): array
|
public function rules(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'type' => ['required', 'string', Rule::in(array_column(FeedbackType::cases(), 'value'))],
|
'type' => ['required', 'string', Rule::in(FeedbackType::values())],
|
||||||
'subject' => ['required', 'string', 'max:150'],
|
'subject' => ['required', 'string', 'max:150'],
|
||||||
'message' => ['required', 'string'],
|
'message' => ['required', 'string'],
|
||||||
];
|
];
|
||||||
|
|||||||
@ -15,7 +15,7 @@ public function up(): void
|
|||||||
$table->string('full_name', 150);
|
$table->string('full_name', 150);
|
||||||
$table->string('phone_number', 20);
|
$table->string('phone_number', 20);
|
||||||
$table->text('address');
|
$table->text('address');
|
||||||
$table->enum('gender', array_values(Gender::cases()));
|
$table->enum('gender', Gender::values());
|
||||||
$table->date('birth_date');
|
$table->date('birth_date');
|
||||||
$table->string('birth_place', 100);
|
$table->string('birth_place', 100);
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
|
|||||||
@ -12,7 +12,7 @@ public function up(): void
|
|||||||
Schema::create('academic_terms', function (Blueprint $table) {
|
Schema::create('academic_terms', function (Blueprint $table) {
|
||||||
$table->id();
|
$table->id();
|
||||||
$table->string('name', 20);
|
$table->string('name', 20);
|
||||||
$table->enum('semester', array_values(Semester::cases()));
|
$table->enum('semester', Semester::values());
|
||||||
$table->date('start_date');
|
$table->date('start_date');
|
||||||
$table->date('end_date');
|
$table->date('end_date');
|
||||||
$table->boolean('is_active')->default(false);
|
$table->boolean('is_active')->default(false);
|
||||||
|
|||||||
@ -16,7 +16,7 @@ public function up(): void
|
|||||||
$table->foreignId('department_id')->constrained()->cascadeOnDelete();
|
$table->foreignId('department_id')->constrained()->cascadeOnDelete();
|
||||||
$table->integer('enrollment_year');
|
$table->integer('enrollment_year');
|
||||||
$table->foreignId('academic_advisor_id')->nullable()->constrained('lecturers')->nullOnDelete();
|
$table->foreignId('academic_advisor_id')->nullable()->constrained('lecturers')->nullOnDelete();
|
||||||
$table->enum('status', array_values(StudentStatus::cases()))->nullable()->default(StudentStatus::Active);
|
$table->enum('status', StudentStatus::values())->nullable()->default(StudentStatus::Active->value);
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
$table->softDeletes();
|
$table->softDeletes();
|
||||||
});
|
});
|
||||||
|
|||||||
@ -15,7 +15,7 @@ public function up(): void
|
|||||||
$table->foreignId('lecturer_id')->constrained()->cascadeOnDelete();
|
$table->foreignId('lecturer_id')->constrained()->cascadeOnDelete();
|
||||||
$table->foreignId('academic_term_id')->constrained()->cascadeOnDelete();
|
$table->foreignId('academic_term_id')->constrained()->cascadeOnDelete();
|
||||||
$table->string('class_name', 50)->nullable();
|
$table->string('class_name', 50)->nullable();
|
||||||
$table->enum('method', array_values(ClassMethod::cases()))->nullable()->default(ClassMethod::Hybrid->value);
|
$table->enum('method', ClassMethod::values())->nullable()->default(ClassMethod::Hybrid->value);
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
$table->softDeletes();
|
$table->softDeletes();
|
||||||
});
|
});
|
||||||
|
|||||||
@ -14,7 +14,7 @@ public function up(): void
|
|||||||
$table->foreignId('assignment_id')->constrained()->cascadeOnDelete();
|
$table->foreignId('assignment_id')->constrained()->cascadeOnDelete();
|
||||||
$table->foreignId('student_id')->constrained()->cascadeOnDelete();
|
$table->foreignId('student_id')->constrained()->cascadeOnDelete();
|
||||||
$table->text('notes')->nullable();
|
$table->text('notes')->nullable();
|
||||||
$table->enum('status', array_values(SubmissionStatus::cases()))->nullable()->default(SubmissionStatus::NotSubmitted->value);
|
$table->enum('status', SubmissionStatus::values())->nullable()->default(SubmissionStatus::NotSubmitted->value);
|
||||||
$table->timestamp('submitted_at')->nullable();
|
$table->timestamp('submitted_at')->nullable();
|
||||||
$table->decimal('score', 5, 2)->nullable();
|
$table->decimal('score', 5, 2)->nullable();
|
||||||
$table->text('lecturer_feedback')->nullable();
|
$table->text('lecturer_feedback')->nullable();
|
||||||
|
|||||||
@ -15,7 +15,7 @@ public function up(): void
|
|||||||
$table->foreignId('student_id')->constrained()->cascadeOnDelete();
|
$table->foreignId('student_id')->constrained()->cascadeOnDelete();
|
||||||
$table->integer('meeting_number')->nullable();
|
$table->integer('meeting_number')->nullable();
|
||||||
$table->date('date');
|
$table->date('date');
|
||||||
$table->enum('status', array_values(AttendanceStatus::cases()))->nullable()->default(AttendanceStatus::Absent->value);
|
$table->enum('status', AttendanceStatus::values())->nullable()->default(AttendanceStatus::Absent->value);
|
||||||
$table->timestamp('recorded_at')->nullable();
|
$table->timestamp('recorded_at')->nullable();
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
|
|
||||||
|
|||||||
@ -15,7 +15,7 @@ public function up(): void
|
|||||||
$table->decimal('amount_paid', 15, 2);
|
$table->decimal('amount_paid', 15, 2);
|
||||||
$table->timestamp('paid_at');
|
$table->timestamp('paid_at');
|
||||||
$table->string('payment_method', 30)->nullable();
|
$table->string('payment_method', 30)->nullable();
|
||||||
$table->enum('status', array_values(PaymentStatus::cases()))->nullable()->default(PaymentStatus::Unpaid->value);
|
$table->enum('status', PaymentStatus::values())->nullable()->default(PaymentStatus::Unpaid->value);
|
||||||
$table->foreignId('recorded_by')->nullable()->constrained('users')->nullOnDelete();
|
$table->foreignId('recorded_by')->nullable()->constrained('users')->nullOnDelete();
|
||||||
$table->text('notes')->nullable();
|
$table->text('notes')->nullable();
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
|
|||||||
@ -14,7 +14,7 @@ public function up(): void
|
|||||||
$table->foreignId('student_id')->constrained()->cascadeOnDelete();
|
$table->foreignId('student_id')->constrained()->cascadeOnDelete();
|
||||||
$table->foreignId('academic_term_id')->constrained()->cascadeOnDelete();
|
$table->foreignId('academic_term_id')->constrained()->cascadeOnDelete();
|
||||||
$table->foreignId('course_class_id')->constrained()->cascadeOnDelete();
|
$table->foreignId('course_class_id')->constrained()->cascadeOnDelete();
|
||||||
$table->enum('status', array_values(RegistrationStatus::cases()))->nullable()->default(RegistrationStatus::Submitted->value);
|
$table->enum('status', RegistrationStatus::values())->nullable()->default(RegistrationStatus::Submitted->value);
|
||||||
$table->foreignId('approved_by')->nullable()->constrained('lecturers')->nullOnDelete();
|
$table->foreignId('approved_by')->nullable()->constrained('lecturers')->nullOnDelete();
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
|
|
||||||
|
|||||||
@ -14,7 +14,7 @@ public function up(): void
|
|||||||
$table->foreignId('student_id')->constrained()->cascadeOnDelete();
|
$table->foreignId('student_id')->constrained()->cascadeOnDelete();
|
||||||
$table->string('letter_type', 100);
|
$table->string('letter_type', 100);
|
||||||
$table->text('purpose')->nullable();
|
$table->text('purpose')->nullable();
|
||||||
$table->enum('status', array_values(LetterStatus::cases()))->nullable()->default(LetterStatus::Submitted->value);
|
$table->enum('status', LetterStatus::values())->nullable()->default(LetterStatus::Submitted->value);
|
||||||
$table->foreignId('processed_by')->nullable()->constrained('users')->nullOnDelete();
|
$table->foreignId('processed_by')->nullable()->constrained('users')->nullOnDelete();
|
||||||
$table->timestamp('submitted_at')->nullable()->useCurrent();
|
$table->timestamp('submitted_at')->nullable()->useCurrent();
|
||||||
$table->timestamp('completed_at')->nullable();
|
$table->timestamp('completed_at')->nullable();
|
||||||
|
|||||||
@ -13,10 +13,10 @@ public function up(): void
|
|||||||
Schema::create('feedbacks', function (Blueprint $table) {
|
Schema::create('feedbacks', function (Blueprint $table) {
|
||||||
$table->id();
|
$table->id();
|
||||||
$table->foreignId('user_id')->constrained()->cascadeOnDelete();
|
$table->foreignId('user_id')->constrained()->cascadeOnDelete();
|
||||||
$table->enum('type', array_column(FeedbackType::cases(), 'value'));
|
$table->enum('type', FeedbackType::values());
|
||||||
$table->string('subject', 150);
|
$table->string('subject', 150);
|
||||||
$table->text('message');
|
$table->text('message');
|
||||||
$table->enum('status', array_column(FeedbackStatus::cases(), 'value'))->default(FeedbackStatus::Submitted->value);
|
$table->enum('status', FeedbackStatus::values())->default(FeedbackStatus::Submitted->value);
|
||||||
$table->text('admin_notes')->nullable();
|
$table->text('admin_notes')->nullable();
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user