standard colours
This commit is contained in:
+68
@@ -0,0 +1,68 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Normalise legacy Flux/Tailwind colour names to the approved WMS palette.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
foreach ($this->lookupTables() as $table) {
|
||||
if (! Schema::hasTable($table) || ! Schema::hasColumn($table, 'color')) {
|
||||
continue;
|
||||
}
|
||||
|
||||
foreach ($this->colourMap() as $legacy => $approved) {
|
||||
DB::table($table)->where('color', $legacy)->update(['color' => $approved]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The migration is intentionally one-way because approved colours are the new baseline.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
// No-op: do not reintroduce legacy colour aliases.
|
||||
}
|
||||
|
||||
/**
|
||||
* @return list<string>
|
||||
*/
|
||||
private function lookupTables(): array
|
||||
{
|
||||
return [
|
||||
'helpdesk_statuses',
|
||||
'helpdesk_priorities',
|
||||
'helpdesk_categories',
|
||||
'helpdesk_teams',
|
||||
'helpdesk_projects',
|
||||
'helpdesk_tags',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array<string, string>
|
||||
*/
|
||||
private function colourMap(): array
|
||||
{
|
||||
return [
|
||||
'emerald' => 'green',
|
||||
'lime' => 'green',
|
||||
'rose' => 'red',
|
||||
'yellow' => 'amber',
|
||||
'orange' => 'amber',
|
||||
'sky' => 'blue',
|
||||
'cyan' => 'blue',
|
||||
'violet' => 'purple',
|
||||
'slate' => 'gray',
|
||||
'zinc' => 'gray',
|
||||
];
|
||||
}
|
||||
};
|
||||
@@ -45,12 +45,12 @@ final class HelpdeskDatabaseSeeder extends Seeder
|
||||
Status::query()->where('is_default', true)->update(['is_default' => false]);
|
||||
|
||||
foreach ([
|
||||
['name' => 'New', 'slug' => 'new', 'color' => 'sky', 'sort_order' => 5, 'is_closed' => false, 'is_default' => true],
|
||||
['name' => 'New', 'slug' => 'new', 'color' => 'blue', 'sort_order' => 5, 'is_closed' => false, 'is_default' => true],
|
||||
['name' => 'Open', 'slug' => 'open', 'color' => 'blue', 'sort_order' => 10, 'is_closed' => false, 'is_default' => false],
|
||||
['name' => 'In Progress', 'slug' => 'in-progress', 'color' => 'amber', 'sort_order' => 20, 'is_closed' => false, 'is_default' => false],
|
||||
['name' => 'Stalled', 'slug' => 'stalled', 'color' => 'rose', 'sort_order' => 30, 'is_closed' => false, 'is_default' => false],
|
||||
['name' => 'On-Hold', 'slug' => 'on-hold', 'color' => 'violet', 'sort_order' => 40, 'is_closed' => false, 'is_default' => false],
|
||||
['name' => 'Closed', 'slug' => 'closed', 'color' => 'emerald', 'sort_order' => 90, 'is_closed' => true, 'is_default' => false],
|
||||
['name' => 'Stalled', 'slug' => 'stalled', 'color' => 'red', 'sort_order' => 30, 'is_closed' => false, 'is_default' => false],
|
||||
['name' => 'On-Hold', 'slug' => 'on-hold', 'color' => 'purple', 'sort_order' => 40, 'is_closed' => false, 'is_default' => false],
|
||||
['name' => 'Closed', 'slug' => 'closed', 'color' => 'green', 'sort_order' => 90, 'is_closed' => true, 'is_default' => false],
|
||||
] as $row) {
|
||||
Status::query()->updateOrCreate(['slug' => $row['slug']], $row);
|
||||
}
|
||||
@@ -66,7 +66,7 @@ final class HelpdeskDatabaseSeeder extends Seeder
|
||||
foreach ([
|
||||
['name' => 'High', 'slug' => 'high', 'color' => 'red', 'sort_order' => 10, 'is_default' => false],
|
||||
['name' => 'Medium', 'slug' => 'medium', 'color' => 'amber', 'sort_order' => 20, 'is_default' => true],
|
||||
['name' => 'Low', 'slug' => 'low', 'color' => 'emerald', 'sort_order' => 30, 'is_default' => false],
|
||||
['name' => 'Low', 'slug' => 'low', 'color' => 'green', 'sort_order' => 30, 'is_default' => false],
|
||||
] as $row) {
|
||||
Priority::query()->updateOrCreate(['slug' => $row['slug']], $row);
|
||||
}
|
||||
@@ -83,9 +83,9 @@ final class HelpdeskDatabaseSeeder extends Seeder
|
||||
->update(['is_default' => false]);
|
||||
foreach ([
|
||||
['name' => 'Development', 'color' => 'indigo', 'description' => 'Software changes, enhancements and development work.', 'is_default' => true],
|
||||
['name' => 'Systems Deployment', 'color' => 'cyan', 'description' => 'Deployment, release, infrastructure and environment requests.', 'is_default' => false],
|
||||
['name' => 'Systems Deployment', 'color' => 'blue', 'description' => 'Deployment, release, infrastructure and environment requests.', 'is_default' => false],
|
||||
['name' => 'Concepts', 'color' => 'purple', 'description' => 'Ideas, concepts, design discussion and future improvements.', 'is_default' => false],
|
||||
['name' => 'Bug', 'color' => 'rose', 'description' => 'Defects, regressions and incorrect behaviour.', 'is_default' => false],
|
||||
['name' => 'Bug', 'color' => 'red', 'description' => 'Defects, regressions and incorrect behaviour.', 'is_default' => false],
|
||||
] as $row) {
|
||||
Category::query()->updateOrCreate(
|
||||
['company_id' => null, 'slug' => Str::slug($row['name'])],
|
||||
|
||||
Reference in New Issue
Block a user