major helpdesk updates
This commit is contained in:
@@ -7,11 +7,16 @@ namespace Modules\Helpdesk\Database\Seeders;
|
||||
use Illuminate\Database\Seeder;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
use Modules\Helpdesk\Models\CannedResponse;
|
||||
use Modules\Helpdesk\Models\Category;
|
||||
use Modules\Helpdesk\Models\ChecklistTemplate;
|
||||
use Modules\Helpdesk\Models\KanbanBoard;
|
||||
use Modules\Helpdesk\Models\Priority;
|
||||
use Modules\Helpdesk\Models\Product;
|
||||
use Modules\Helpdesk\Models\Project;
|
||||
use Modules\Helpdesk\Models\SlaPolicy;
|
||||
use Modules\Helpdesk\Models\Status;
|
||||
use Modules\Helpdesk\Models\Tag;
|
||||
use Modules\Helpdesk\Models\Team;
|
||||
use Modules\Helpdesk\Models\WorkflowTemplate;
|
||||
|
||||
@@ -30,6 +35,7 @@ final class HelpdeskDatabaseSeeder extends Seeder
|
||||
$this->seedTeamsAndProjects();
|
||||
$this->seedKanbanBoards();
|
||||
$this->seedWorkflowTemplates();
|
||||
$this->seedRedmineInspiredDefaults();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -172,6 +178,80 @@ final class HelpdeskDatabaseSeeder extends Seeder
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Seed RedmineUP-inspired professional helpdesk defaults.
|
||||
*/
|
||||
private function seedRedmineInspiredDefaults(): void
|
||||
{
|
||||
$medium = Priority::query()->where('slug', 'medium')->first();
|
||||
$bug = Category::query()->where('slug', 'bug')->first();
|
||||
|
||||
SlaPolicy::query()->updateOrCreate(
|
||||
['company_id' => null, 'slug' => 'standard-support-sla'],
|
||||
[
|
||||
'company_id' => null,
|
||||
'priority_id' => $medium?->id,
|
||||
'category_id' => null,
|
||||
'name' => 'Standard Support SLA',
|
||||
'slug' => 'standard-support-sla',
|
||||
'first_response_minutes' => 240,
|
||||
'resolution_minutes' => 2880,
|
||||
'business_hours_only' => false,
|
||||
'is_default' => true,
|
||||
'is_active' => true,
|
||||
]
|
||||
);
|
||||
|
||||
CannedResponse::query()->updateOrCreate(
|
||||
['company_id' => null, 'slug' => 'professional-acknowledgement'],
|
||||
[
|
||||
'company_id' => null,
|
||||
'category_id' => null,
|
||||
'team_id' => null,
|
||||
'name' => 'Professional acknowledgement',
|
||||
'slug' => 'professional-acknowledgement',
|
||||
'visibility' => 'agents',
|
||||
'subject' => null,
|
||||
'body' => '<p>Hello {{ requester.name }},</p><p>Thank you for the update on {{ ticket.reference }}. I am reviewing this now and will come back with the next action shortly.</p><p>Regards,<br>{{ agent.name }}</p>',
|
||||
'is_active' => true,
|
||||
'sort_order' => 10,
|
||||
]
|
||||
);
|
||||
|
||||
ChecklistTemplate::query()->updateOrCreate(
|
||||
['company_id' => null, 'slug' => 'bug-triage-checklist'],
|
||||
[
|
||||
'company_id' => null,
|
||||
'category_id' => $bug?->id,
|
||||
'project_id' => null,
|
||||
'name' => 'Bug triage checklist',
|
||||
'slug' => 'bug-triage-checklist',
|
||||
'items' => ['Confirm reproduction steps', 'Check recent deployment/build', 'Identify affected tenant/company', 'Record fix or workaround'],
|
||||
'is_active' => true,
|
||||
]
|
||||
);
|
||||
|
||||
foreach ([
|
||||
['name' => 'Escalated', 'slug' => 'escalated', 'color' => 'red'],
|
||||
['name' => 'Waiting on customer', 'slug' => 'waiting-on-customer', 'color' => 'amber'],
|
||||
] as $tag) {
|
||||
Tag::query()->updateOrCreate(['company_id' => null, 'slug' => $tag['slug']], $tag + ['company_id' => null]);
|
||||
}
|
||||
|
||||
Product::query()->updateOrCreate(
|
||||
['company_id' => null, 'slug' => 'wms-platform'],
|
||||
[
|
||||
'company_id' => null,
|
||||
'name' => 'WMS Platform',
|
||||
'slug' => 'wms-platform',
|
||||
'type' => 'service',
|
||||
'version' => null,
|
||||
'release_channel' => 'core',
|
||||
'description' => 'Default service record for WMS platform support tickets.',
|
||||
'is_active' => true,
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user