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

View File

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

View File

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

View File

@ -3,15 +3,16 @@
namespace App\Enums;
use App\Traits\Enum\WithComment;
use App\Traits\Enum\WithValue;
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 DISKOMINFO_PURWAKARTA = 'Diskominfo Purwakarta';
case PURWAKARTA_SABER_HOAKS = 'Purwakarta Saber Hoaks';
case PPID_DISKOMINFO_PURWAKARTA = 1;
case DISKOMINFO_PURWAKARTA = 2;
case PURWAKARTA_SABER_HOAKS = 3;
public function getLabel(): ?string
{

View File

@ -19,7 +19,7 @@ public function up(): void
$table->string('name', 50)->index();
$table->text('address');
$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->string('journalism_organization')->nullable();
$table->string('press_council_certificate')->nullable();

View File

@ -1,5 +1,6 @@
<?php
use App\Enums\Channel;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
@ -16,7 +17,7 @@ public function up(): void
$table->string('code', 10);
$table->string('media_name', 50)->index();
$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->text('link')->nullable();
$table->string('news_page', 20)->nullable();

View File

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

View File

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

View File

@ -15,7 +15,7 @@ public function up(): void
Schema::create('categories', function (Blueprint $table) {
$table->id();
$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('updated_at')->nullable()->useCurrentOnUpdate();
$table->softDeletes();

View File

@ -21,7 +21,7 @@ public function up(): void
$table->text('excerpt');
$table->string('link')->nullable();
$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('created_at')->useCurrent();
$table->timestamp('updated_at')->nullable()->useCurrentOnUpdate();

View File

@ -16,7 +16,7 @@ public function up(): void
$table->id();
$table->string('title', 200);
$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('updated_at')->nullable()->useCurrentOnUpdate();
$table->softDeletes();

View File

@ -21,7 +21,7 @@ public function up(): void
$table->unsignedInteger('payment_amount')->nullable();
$table->date('payment_date')->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('updated_at')->nullable()->useCurrentOnUpdate();
$table->softDeletes();

View File

@ -16,7 +16,7 @@ public function up(): void
$table->id();
$table->foreignId('cooperation_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('updated_at')->nullable()->useCurrentOnUpdate();
});

View File

@ -20,7 +20,7 @@ public function up(): void
$table->foreignIdFor(PartnerMedia::class)->constrained()->cascadeOnDelete();
$table->text('description')->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('responded_at')->nullable();
$table->timestamp('created_at')->useCurrent();

View File

@ -16,7 +16,7 @@ public function up(): void
$table->id();
$table->foreignId('task_assignment_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('updated_at')->nullable()->useCurrentOnUpdate();
});

View File

@ -19,7 +19,7 @@ public function up(): void
$table->date('publication_date')->index();
$table->string('link');
$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('updated_at')->nullable()->useCurrentOnUpdate();
$table->softDeletes();