refactor: Update enums to use integer values and adjust migration column definitions and default values accordingly.

This commit is contained in:
Yoga Pangestu 2026-03-13 11:55:29 +07:00
parent 734b5fad87
commit 48f0c277d1
16 changed files with 44 additions and 39 deletions

View File

@ -3,19 +3,20 @@
namespace App\Enums; namespace App\Enums;
use App\Traits\Enum\WithComment; use App\Traits\Enum\WithComment;
use App\Traits\Enum\WithValue;
use Filament\Support\Contracts\HasLabel; use Filament\Support\Contracts\HasLabel;
enum Channel: string implements HasLabel enum Channel: int implements HasLabel
{ {
use WithComment; use WithComment, WithValue;
case WEBSITE = 'website'; case WEBSITE = 1;
case TIKTOK = 'tiktok'; case TIKTOK = 2;
case YOUTUBE = 'youtube'; case YOUTUBE = 3;
case FACEBOOK = 'facebook'; case FACEBOOK = 4;
case INSTAGRAM = 'instagram'; case INSTAGRAM = 5;
case TWITTER = 'twitter'; case TWITTER = 6;
case OTHER = 'other'; case OTHER = 7;
public function getLabel(): ?string public function getLabel(): ?string
{ {

View File

@ -6,14 +6,14 @@
use App\Traits\Enum\WithValue; use App\Traits\Enum\WithValue;
use Filament\Support\Contracts\HasLabel; use Filament\Support\Contracts\HasLabel;
enum ContentType: string implements HasLabel enum ContentType: int implements HasLabel
{ {
use WithComment, WithValue; use WithComment, WithValue;
case FOTO = 'Foto'; case FOTO = 1;
case TEXT = 'Teks'; case TEXT = 2;
case GRAPHIC = 'Grafis'; case GRAPHIC = 3;
case VIDEO = 'Video'; case VIDEO = 4;
public function getLabel(): ?string public function getLabel(): ?string
{ {

View File

@ -8,14 +8,14 @@
use Filament\Support\Contracts\HasColor; use Filament\Support\Contracts\HasColor;
use Filament\Support\Contracts\HasLabel; use Filament\Support\Contracts\HasLabel;
enum IssueSentiment: string implements HasColor, HasLabel enum IssueSentiment: int implements HasColor, HasLabel
{ {
use WithComment, WithValue; use WithComment, WithValue;
case POSITIVE = 'positive'; case POSITIVE = 1;
case NEGATIVE = 'negative'; case NEGATIVE = 2;
case NEUTRAL = 'neutral'; case NEUTRAL = 3;
case CRISIS = 'krisis'; case CRISIS = 4;
public function getLabel(): ?string public function getLabel(): ?string
{ {

View File

@ -3,15 +3,16 @@
namespace App\Enums; namespace App\Enums;
use App\Traits\Enum\WithComment; use App\Traits\Enum\WithComment;
use App\Traits\Enum\WithValue;
use Filament\Support\Contracts\HasLabel; use Filament\Support\Contracts\HasLabel;
enum SocialMedia: string implements HasLabel enum SocialMedia: int implements HasLabel
{ {
use WithComment; use WithComment, WithValue;
case PPID_DISKOMINFO_PURWAKARTA = 'PPID Diskominfo Purwakarta'; case PPID_DISKOMINFO_PURWAKARTA = 1;
case DISKOMINFO_PURWAKARTA = 'Diskominfo Purwakarta'; case DISKOMINFO_PURWAKARTA = 2;
case PURWAKARTA_SABER_HOAKS = 'Purwakarta Saber Hoaks'; case PURWAKARTA_SABER_HOAKS = 3;
public function getLabel(): ?string public function getLabel(): ?string
{ {

View File

@ -19,7 +19,7 @@ public function up(): void
$table->string('name', 50)->index(); $table->string('name', 50)->index();
$table->text('address'); $table->text('address');
$table->string('link')->nullable(); $table->string('link')->nullable();
$table->enum('type', MediaType::values())->default(MediaType::ONLINE)->comment(MediaType::comment())->index(); $table->enum('type', MediaType::values())->default(MediaType::ONLINE->value)->comment(MediaType::comment())->index();
$table->enum('classification', MediaClassification::values())->comment(MediaClassification::comment())->index(); $table->enum('classification', MediaClassification::values())->comment(MediaClassification::comment())->index();
$table->string('journalism_organization')->nullable(); $table->string('journalism_organization')->nullable();
$table->string('press_council_certificate')->nullable(); $table->string('press_council_certificate')->nullable();

View File

@ -1,5 +1,6 @@
<?php <?php
use App\Enums\Channel;
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema; use Illuminate\Support\Facades\Schema;
@ -16,7 +17,7 @@ public function up(): void
$table->string('code', 10); $table->string('code', 10);
$table->string('media_name', 50)->index(); $table->string('media_name', 50)->index();
$table->text('title', 255); $table->text('title', 255);
$table->string('channel', 20)->index(); $table->enum('channel', Channel::values())->default(Channel::WEBSITE->value)->comment(Channel::comment())->index();
$table->string('writter', 50); $table->string('writter', 50);
$table->text('link')->nullable(); $table->text('link')->nullable();
$table->string('news_page', 20)->nullable(); $table->string('news_page', 20)->nullable();

View File

@ -1,6 +1,8 @@
<?php <?php
use App\Enums\Channel;
use App\Enums\ContentType; use App\Enums\ContentType;
use App\Enums\SocialMedia;
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema; use Illuminate\Support\Facades\Schema;
@ -18,9 +20,9 @@ public function up(): void
$table->text('title'); $table->text('title');
$table->text('link')->nullable(); $table->text('link')->nullable();
$table->date('posting_date')->index(); $table->date('posting_date')->index();
$table->enum('type', ContentType::values())->default(ContentType::FOTO)->index(); $table->enum('type', ContentType::values())->default(ContentType::FOTO->value)->comment(ContentType::comment())->index();
$table->string('channel', 20)->index(); $table->enum('channel', Channel::values())->default(Channel::WEBSITE->value)->comment(Channel::comment())->index();
$table->string('social_media', 50)->index(); $table->enum('social_media', SocialMedia::values())->default(SocialMedia::DISKOMINFO_PURWAKARTA->value)->comment(SocialMedia::comment())->index();
$table->timestamp('created_at')->useCurrent(); $table->timestamp('created_at')->useCurrent();
$table->timestamp('updated_at')->nullable()->useCurrentOnUpdate(); $table->timestamp('updated_at')->nullable()->useCurrentOnUpdate();
$table->softDeletes(); $table->softDeletes();

View File

@ -19,8 +19,8 @@ public function up(): void
$table->foreignId('classification_id')->constrained()->cascadeOnDelete(); $table->foreignId('classification_id')->constrained()->cascadeOnDelete();
$table->foreignId('sub_classification_id')->nullable()->constrained()->nullOnDelete(); $table->foreignId('sub_classification_id')->nullable()->constrained()->nullOnDelete();
$table->foreignId('media_monitoring_id')->constrained()->cascadeOnDelete(); $table->foreignId('media_monitoring_id')->constrained()->cascadeOnDelete();
$table->enum('issue', IssueSentiment::values())->comment(IssueSentiment::comment())->index(); $table->enum('issue', IssueSentiment::values())->default(IssueSentiment::NEUTRAL->value)->comment(IssueSentiment::comment())->index();
$table->enum('response', IssueSentiment::values())->comment(IssueSentiment::comment())->index(); $table->enum('response', IssueSentiment::values())->default(IssueSentiment::NEUTRAL->value)->comment(IssueSentiment::comment())->index();
$table->text('description'); $table->text('description');
$table->timestamp('created_at')->useCurrent(); $table->timestamp('created_at')->useCurrent();
$table->timestamp('updated_at')->nullable()->useCurrentOnUpdate(); $table->timestamp('updated_at')->nullable()->useCurrentOnUpdate();

View File

@ -15,7 +15,7 @@ public function up(): void
Schema::create('categories', function (Blueprint $table) { Schema::create('categories', function (Blueprint $table) {
$table->id(); $table->id();
$table->string('name', 50); $table->string('name', 50);
$table->enum('is_active', [IsActive::values()])->default(IsActive::ACTIVE->value)->comment(IsActive::comment()); $table->enum('is_active', IsActive::values())->default(IsActive::ACTIVE->value)->comment(IsActive::comment());
$table->timestamp('created_at')->useCurrent(); $table->timestamp('created_at')->useCurrent();
$table->timestamp('updated_at')->nullable()->useCurrentOnUpdate(); $table->timestamp('updated_at')->nullable()->useCurrentOnUpdate();
$table->softDeletes(); $table->softDeletes();

View File

@ -21,7 +21,7 @@ public function up(): void
$table->text('excerpt'); $table->text('excerpt');
$table->string('link')->nullable(); $table->string('link')->nullable();
$table->unsignedInteger('views')->default(0)->index(); $table->unsignedInteger('views')->default(0)->index();
$table->enum('status', NewsStatus::values())->comment(NewsStatus::comment())->index(); $table->enum('status', NewsStatus::values())->default(NewsStatus::DRAFT->value)->comment(NewsStatus::comment())->index();
$table->timestamp('published_at')->nullable()->index(); $table->timestamp('published_at')->nullable()->index();
$table->timestamp('created_at')->useCurrent(); $table->timestamp('created_at')->useCurrent();
$table->timestamp('updated_at')->nullable()->useCurrentOnUpdate(); $table->timestamp('updated_at')->nullable()->useCurrentOnUpdate();

View File

@ -16,7 +16,7 @@ public function up(): void
$table->id(); $table->id();
$table->string('title', 200); $table->string('title', 200);
$table->text('content'); $table->text('content');
$table->enum('type', AnnouncementType::values())->default(AnnouncementType::PUBLIC)->comment(AnnouncementType::comment()); $table->enum('type', AnnouncementType::values())->default(AnnouncementType::PUBLIC->value)->comment(AnnouncementType::comment());
$table->timestamp('created_at')->useCurrent(); $table->timestamp('created_at')->useCurrent();
$table->timestamp('updated_at')->nullable()->useCurrentOnUpdate(); $table->timestamp('updated_at')->nullable()->useCurrentOnUpdate();
$table->softDeletes(); $table->softDeletes();

View File

@ -21,7 +21,7 @@ public function up(): void
$table->unsignedInteger('payment_amount')->nullable(); $table->unsignedInteger('payment_amount')->nullable();
$table->date('payment_date')->nullable(); $table->date('payment_date')->nullable();
$table->date('completed_at')->nullable(); $table->date('completed_at')->nullable();
$table->enum('status', CooperationStatus::values())->default(CooperationStatus::PENDING)->comment(CooperationStatus::comment())->index(); $table->enum('status', CooperationStatus::values())->default(CooperationStatus::PENDING->value)->comment(CooperationStatus::comment())->index();
$table->timestamp('created_at')->useCurrent(); $table->timestamp('created_at')->useCurrent();
$table->timestamp('updated_at')->nullable()->useCurrentOnUpdate(); $table->timestamp('updated_at')->nullable()->useCurrentOnUpdate();
$table->softDeletes(); $table->softDeletes();

View File

@ -16,7 +16,7 @@ public function up(): void
$table->id(); $table->id();
$table->foreignId('cooperation_id')->constrained()->cascadeOnDelete(); $table->foreignId('cooperation_id')->constrained()->cascadeOnDelete();
$table->foreignId('partner_media_id')->constrained()->cascadeOnDelete(); $table->foreignId('partner_media_id')->constrained()->cascadeOnDelete();
$table->enum('status', ApprovalStatus::values())->default(ApprovalStatus::PENDING)->comment(ApprovalStatus::comment())->index(); $table->enum('status', ApprovalStatus::values())->default(ApprovalStatus::PENDING->value)->comment(ApprovalStatus::comment())->index();
$table->timestamp('created_at')->useCurrent(); $table->timestamp('created_at')->useCurrent();
$table->timestamp('updated_at')->nullable()->useCurrentOnUpdate(); $table->timestamp('updated_at')->nullable()->useCurrentOnUpdate();
}); });

View File

@ -20,7 +20,7 @@ public function up(): void
$table->foreignIdFor(PartnerMedia::class)->constrained()->cascadeOnDelete(); $table->foreignIdFor(PartnerMedia::class)->constrained()->cascadeOnDelete();
$table->text('description')->nullable(); $table->text('description')->nullable();
$table->string('e_catalog', 200)->nullable(); $table->string('e_catalog', 200)->nullable();
$table->enum('status', ApprovalStatus::values())->default(ApprovalStatus::PENDING)->comment(ApprovalStatus::comment()); $table->enum('status', ApprovalStatus::values())->default(ApprovalStatus::PENDING->value)->comment(ApprovalStatus::comment());
$table->timestamp('submitted_at')->useCurrent(); $table->timestamp('submitted_at')->useCurrent();
$table->timestamp('responded_at')->nullable(); $table->timestamp('responded_at')->nullable();
$table->timestamp('created_at')->useCurrent(); $table->timestamp('created_at')->useCurrent();

View File

@ -16,7 +16,7 @@ public function up(): void
$table->id(); $table->id();
$table->foreignId('task_assignment_id')->constrained()->cascadeOnDelete(); $table->foreignId('task_assignment_id')->constrained()->cascadeOnDelete();
$table->foreignId('partner_media_id')->constrained()->cascadeOnDelete(); $table->foreignId('partner_media_id')->constrained()->cascadeOnDelete();
$table->enum('status', ApprovalStatus::values())->default(ApprovalStatus::PENDING)->comment(ApprovalStatus::comment())->index(); $table->enum('status', ApprovalStatus::values())->default(ApprovalStatus::PENDING->value)->comment(ApprovalStatus::comment())->index();
$table->timestamp('created_at')->useCurrent(); $table->timestamp('created_at')->useCurrent();
$table->timestamp('updated_at')->nullable()->useCurrentOnUpdate(); $table->timestamp('updated_at')->nullable()->useCurrentOnUpdate();
}); });

View File

@ -19,7 +19,7 @@ public function up(): void
$table->date('publication_date')->index(); $table->date('publication_date')->index();
$table->string('link'); $table->string('link');
$table->text('description'); $table->text('description');
$table->enum('status', ApprovalStatus::values())->default(ApprovalStatus::PENDING)->comment(ApprovalStatus::comment())->index(); $table->enum('status', ApprovalStatus::values())->default(ApprovalStatus::PENDING->value)->comment(ApprovalStatus::comment())->index();
$table->timestamp('created_at')->useCurrent(); $table->timestamp('created_at')->useCurrent();
$table->timestamp('updated_at')->nullable()->useCurrentOnUpdate(); $table->timestamp('updated_at')->nullable()->useCurrentOnUpdate();
$table->softDeletes(); $table->softDeletes();