diff --git a/app/Enums/ChickenStatus.php b/app/Enums/ChickenStatus.php deleted file mode 100644 index bba4b58..0000000 --- a/app/Enums/ChickenStatus.php +++ /dev/null @@ -1,45 +0,0 @@ - 'Aktif', - self::DEAD => 'Mati', - self::CULLED => 'Dimusnahkan', - self::SOLD => 'Dijual', - }; - } - - public function getColor(): string|array|null - { - return match ($this) { - self::ACTIVE => 'success', - self::DEAD => 'danger', - self::CULLED => 'warning', - self::SOLD => 'primary', - }; - } - - public static function options(): array - { - return collect(self::cases()) - ->mapWithKeys(fn ($case) => [$case->value => $case->getLabel()]) - ->toArray(); - } -} diff --git a/app/Filament/Resources/Master/Chickens/ChickenResource.php b/app/Filament/Resources/Master/Chickens/ChickenResource.php deleted file mode 100644 index 66ba113..0000000 --- a/app/Filament/Resources/Master/Chickens/ChickenResource.php +++ /dev/null @@ -1,166 +0,0 @@ -components([ - TextInput::make('tag_code') - ->label('Kode Tag') - ->placeholder('...') - ->autocomplete(false) - ->autofocus() - ->required() - ->maxLength(20) - ->unique(ignoreRecord: true), - - DatePicker::make('hatch_date') - ->label('Tanggal Menetas') - ->placeholder('Pilih Tanggal') - ->native(false) - ->displayFormat('l, d F Y'), - - DatePicker::make('arrival_date') - ->label('Tanggal Tiba') - ->placeholder('Pilih Tanggal') - ->required() - ->native(false) - ->displayFormat('l, d F Y'), - - DatePicker::make('exit_date') - ->label('Tanggal Keluar/Afkir') - ->placeholder('Pilih Tanggal') - ->native(false) - ->displayFormat('l, d F Y'), - - Select::make('status') - ->label('Status') - ->options(ChickenStatus::class) - ->required() - ->native(false) - ->default(ChickenStatus::ACTIVE), - ]) - ->columns(1); - } - - public static function table(Table $table): Table - { - return $table - ->columns([ - TextColumn::make('tag_code') - ->label('Kode Tag') - ->searchable() - ->sortable(), - - TextColumn::make('hatch_date') - ->label('Tanggal Menetas') - ->date('l, d F Y') - ->sortable(), - - TextColumn::make('arrival_date') - ->label('Tanggal Tiba') - ->date('l, d F Y') - ->sortable(), - - TextColumn::make('exit_date') - ->label('Tanggal Keluar') - ->date('l, d F Y') - ->sortable(), - - TextColumn::make('status') - ->label('Status') - ->badge() - ->sortable(), - - ...TimestampColumns::make(), - ]) - ->filters([ - SelectFilter::make('status') - ->label('Status') - ->options(ChickenStatus::class) - ->native(false), - - TrashedFilter::make() - ->native(false) - ->visible(fn (): bool => auth()->user()->hasRole(RoleEnum::DEVELOPER)), - ]) - ->recordActions([ - EditAction::make() - ->modalWidth(Width::Large), - - DeleteAction::make(), - - ForceDeleteAction::make(), - - RestoreAction::make(), - ]) - ->toolbarActions([ - BulkActionGroup::make([ - ...DefaultBulkActions::make('Ayam'), - ]), - ]) - ->emptyStateIcon(Heroicon::RectangleGroup) - ->emptyStateDescription('Setelah Anda membuat data pertama, maka akan muncul disini.') - ->defaultSort('created_at', 'desc') - ->deferFilters(false); - } - - public static function getPages(): array - { - return [ - 'index' => ManageChickens::route('/'), - ]; - } - - public static function getRecordRouteBindingEloquentQuery(): Builder - { - return parent::getRecordRouteBindingEloquentQuery() - ->withoutGlobalScopes([ - SoftDeletingScope::class, - ]); - } -} diff --git a/app/Filament/Resources/Master/Chickens/Pages/ManageChickens.php b/app/Filament/Resources/Master/Chickens/Pages/ManageChickens.php deleted file mode 100644 index 7b12835..0000000 --- a/app/Filament/Resources/Master/Chickens/Pages/ManageChickens.php +++ /dev/null @@ -1,31 +0,0 @@ -label('Tambah') - ->modalHeading('Tambah Ayam') - ->modalSubmitActionLabel('Simpan') - ->modalCancelActionLabel('Batal') - ->extraModalFooterActions(fn (CreateAction $action): array => [ - $action->makeModalSubmitAction('createAnother', arguments: ['another' => true]) - ->label('Simpan dan Tambah Lagi'), - ]) - ->modalWidth(Width::Large), - ]; - } -} diff --git a/app/Filament/Widgets/StatsOverview.php b/app/Filament/Widgets/StatsOverview.php index 324d54d..3a7eaf0 100644 --- a/app/Filament/Widgets/StatsOverview.php +++ b/app/Filament/Widgets/StatsOverview.php @@ -2,8 +2,6 @@ namespace App\Filament\Widgets; -use App\Enums\ChickenStatus; -use App\Models\Chicken; use App\Models\Customer; use App\Models\DelayedGood; use App\Models\EggCollection; @@ -23,11 +21,6 @@ class StatsOverview extends BaseWidget protected function getStats(): array { return [ - Stat::make('Total Ayam', Chicken::where('status', ChickenStatus::ACTIVE)->count()) - ->description('Jumlah ayam dengan status aktif saat ini.') - ->descriptionIcon('heroicon-m-heart') - ->color('success'), - Stat::make('Produksi Telur', number_format(EggCollection::sum('total_eggs'), 0, ',', '.').' Butir') ->description('Total telur yang terkumpul.') ->descriptionIcon('heroicon-m-circle-stack') diff --git a/app/Models/Chicken.php b/app/Models/Chicken.php deleted file mode 100644 index a682b0d..0000000 --- a/app/Models/Chicken.php +++ /dev/null @@ -1,28 +0,0 @@ - 'date', - 'arrival_date' => 'date', - 'exit_date' => 'date', - 'status' => ChickenStatus::class, - ]; - } -} diff --git a/app/Observers/ChickenObserver.php b/app/Observers/ChickenObserver.php deleted file mode 100644 index 5f69c86..0000000 --- a/app/Observers/ChickenObserver.php +++ /dev/null @@ -1,57 +0,0 @@ -forget('active_chickens_for_egg_collection_form'); - } - - /** - * Handle the Chicken "created" event. - */ - public function created(Chicken $chicken): void - { - $this->clearChickenCache(); - } - - /** - * Handle the Chicken "updated" event. - */ - public function updated(Chicken $chicken): void - { - $this->clearChickenCache(); - } - - /** - * Handle the Chicken "deleted" event. - */ - public function deleted(Chicken $chicken): void - { - $this->clearChickenCache(); - } - - /** - * Handle the Chicken "restored" event. - */ - public function restored(Chicken $chicken): void - { - $this->clearChickenCache(); - } - - /** - * Handle the Chicken "force deleted" event. - */ - public function forceDeleted(Chicken $chicken): void - { - $this->clearChickenCache(); - } -} diff --git a/app/Policies/ChickenPolicy.php b/app/Policies/ChickenPolicy.php deleted file mode 100644 index 3e0e6d6..0000000 --- a/app/Policies/ChickenPolicy.php +++ /dev/null @@ -1,69 +0,0 @@ -can('ViewAny:Chicken'); - } - - public function view(AuthUser $authUser, Chicken $chicken): bool - { - return $authUser->can('View:Chicken'); - } - - public function create(AuthUser $authUser): bool - { - return $authUser->can('Create:Chicken'); - } - - public function update(AuthUser $authUser, Chicken $chicken): bool - { - return $authUser->can('Update:Chicken'); - } - - public function delete(AuthUser $authUser, Chicken $chicken): bool - { - return $authUser->can('Delete:Chicken'); - } - - public function restore(AuthUser $authUser, Chicken $chicken): bool - { - return $authUser->can('Restore:Chicken'); - } - - public function forceDelete(AuthUser $authUser, Chicken $chicken): bool - { - return $authUser->can('ForceDelete:Chicken'); - } - - public function forceDeleteAny(AuthUser $authUser): bool - { - return $authUser->can('ForceDeleteAny:Chicken'); - } - - public function restoreAny(AuthUser $authUser): bool - { - return $authUser->can('RestoreAny:Chicken'); - } - - public function replicate(AuthUser $authUser, Chicken $chicken): bool - { - return $authUser->can('Replicate:Chicken'); - } - - public function reorder(AuthUser $authUser): bool - { - return $authUser->can('Reorder:Chicken'); - } -} diff --git a/database/factories/ChickenFactory.php b/database/factories/ChickenFactory.php deleted file mode 100644 index 85f28db..0000000 --- a/database/factories/ChickenFactory.php +++ /dev/null @@ -1,39 +0,0 @@ - - */ -class ChickenFactory extends Factory -{ - protected $model = Chicken::class; - - public function definition(): array - { - $arrivalDate = $this->faker->dateTimeBetween('-6 months', 'now'); - $hatchDate = $this->faker->boolean(70) - ? $this->faker->dateTimeBetween( - (clone $arrivalDate)->modify('-2 months'), - $arrivalDate - ) - : null; - - $status = $this->faker->randomElement(ChickenStatus::cases()); - $exitDate = $status === ChickenStatus::DEAD - ? $this->faker->dateTimeBetween($arrivalDate, 'now') - : null; - - return [ - 'tag_code' => strtoupper($this->faker->bothify('CHK-###??')), - 'hatch_date' => $hatchDate, - 'arrival_date' => $arrivalDate, - 'exit_date' => $exitDate, - 'status' => $status, - ]; - } -} diff --git a/database/migrations/2026_02_09_021857_create_chickens_table.php b/database/migrations/2026_02_09_021857_create_chickens_table.php deleted file mode 100644 index 3155a0e..0000000 --- a/database/migrations/2026_02_09_021857_create_chickens_table.php +++ /dev/null @@ -1,35 +0,0 @@ -id(); - $table->string('tag_code', 20); - $table->date('hatch_date')->nullable(); - $table->date('arrival_date'); - $table->date('exit_date')->nullable(); - $table->enum('status', ChickenStatus::cases())->default(ChickenStatus::ACTIVE->value)->comment(ChickenStatus::comment()); - $table->timestamp('created_at')->useCurrent(); - $table->timestamp('updated_at')->nullable()->useCurrentOnUpdate(); - $table->softDeletes(); - }); - } - - /** - * Reverse the migrations. - */ - public function down(): void - { - Schema::dropIfExists('chickens'); - } -}; diff --git a/database/seeders/ChickenSeeder.php b/database/seeders/ChickenSeeder.php deleted file mode 100644 index a3b4548..0000000 --- a/database/seeders/ChickenSeeder.php +++ /dev/null @@ -1,17 +0,0 @@ -count(50)->create(); - } -} diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 9fb91fb..6e4316b 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -19,7 +19,6 @@ public function run(): void ShieldSeeder::class, UserSeeder::class, UnitSeeder::class, - ChickenSeeder::class, FeedSeeder::class, FeedPurchaseSeeder::class, EggCollectionSeeder::class, diff --git a/database/seeders/ShieldSeeder.php b/database/seeders/ShieldSeeder.php index 3dd0e9c..3a1f285 100644 --- a/database/seeders/ShieldSeeder.php +++ b/database/seeders/ShieldSeeder.php @@ -27,18 +27,6 @@ public function run(): void "View:OrderTrendChart", "View:RevenueExpenseChart", "View:TopCustomersChart", - - "ViewAny:Chicken", - "View:Chicken", - "Create:Chicken", - "Update:Chicken", - "Delete:Chicken", - "Restore:Chicken", - "ForceDelete:Chicken", - "ForceDeleteAny:Chicken", - "RestoreAny:Chicken", - "Replicate:Chicken", - "Reorder:Chicken", "ViewAny:Customer", "View:Customer", @@ -76,18 +64,6 @@ public function run(): void "Replicate:EggCollection", "Reorder:EggCollection", - "ViewAny:EggPrice", - "View:EggPrice", - "Create:EggPrice", - "Update:EggPrice", - "Delete:EggPrice", - "Restore:EggPrice", - "ForceDelete:EggPrice", - "ForceDeleteAny:EggPrice", - "RestoreAny:EggPrice", - "Replicate:EggPrice", - "Reorder:EggPrice", - "ViewAny:Expense", "View:Expense", "Create:Expense", @@ -135,7 +111,7 @@ public function run(): void "RestoreAny:Order", "Replicate:Order", "Reorder:Order", - + "ViewAny:Unit", "View:Unit", "Create:Unit", @@ -147,7 +123,7 @@ public function run(): void "RestoreAny:Unit", "Replicate:Unit", "Reorder:Unit", - + "ViewAny:User", "View:User", "Create:User", @@ -182,14 +158,6 @@ public function run(): void "View:OrderTrendChart", "View:RevenueExpenseChart", "View:TopCustomersChart", - - "ViewAny:Chicken", - "View:Chicken", - "Create:Chicken", - "Update:Chicken", - "Delete:Chicken", - "Replicate:Chicken", - "Reorder:Chicken", "ViewAny:Customer", "View:Customer", @@ -215,14 +183,6 @@ public function run(): void "Replicate:EggCollection", "Reorder:EggCollection", - "ViewAny:EggPrice", - "View:EggPrice", - "Create:EggPrice", - "Update:EggPrice", - "Delete:EggPrice", - "Replicate:EggPrice", - "Reorder:EggPrice", - "ViewAny:Expense", "View:Expense", "Create:Expense", @@ -254,7 +214,7 @@ public function run(): void "Delete:Order", "Replicate:Order", "Reorder:Order", - + "ViewAny:Unit", "View:Unit", "Create:Unit", @@ -262,7 +222,7 @@ public function run(): void "Delete:Unit", "Replicate:Unit", "Reorder:Unit", - + "ViewAny:User", "View:User", "Create:User",