evangeo/tickets is a Laravel package for ticket support system.
It currently has 1 GitHub stars and 12 downloads on Packagist.
Install it with composer require evangeo/tickets.
Discover more Laravel packages by evangeo
or browse all Laravel packages to compare alternatives.
Last updated
The Laravel Ticket Support Backend Package is a specialized solution for managing customer support requests and streamlining the back-end processes of your support system. This package is designed to empower your support team by providing the necessary tools for efficient ticket handling and resolution.
You can install the package via composer:
composer require evangeo/tickets
You can publish and run the migrations with:
php artisan vendor:publish --tag="tickets-migrations"
php artisan migrate
You can publish the config file with:
php artisan vendor:publish --tag="tickets-config"
| Column Name | Type | Default |
|-----------------------|------------------------------------------|---------------------|
| ID | integer | NOT NULL |
| UUID | string | NOT NULL |
| title | string | NOT NULL |
| description | string | NOT NULL |
| entity | string | NOT NULL |
| entity_id | int | NOT NULL |
| assigned_user | int | NOT NULL |
| category_id | int | NULL |
| internal_group_id | int | NULL |
| status | enum (open, re-open, closed, archived) | open |
| waiting_response_from | enum (user, entity) | NOT NULL |
| priority | enum (low, normal, high) | low |
| closed_by | enum (user, entity) | NULL |
| created_at | timestamp | current timestamp |
| created_by | int | NULL |
| updated_at | timestamp | current timestamp |
| modified_by | int | NULL |
| deleted_at | timestamp | NULL |
| deleted_by | int | NULL |
| Column Name | Type | Default |
|-------------|-----------------------------|---------------------|
| id | integer | NOT NULL |
| ticket_id | int | NOT NULL |
| message | mediumText | NOT NULL |
| type | enum (external, internal) | external |
| created_at | timestamp | current timestamp |
| created_by | int | NULL |
| updated_at | timestamp | current timestamp |
| modified_by | int | NULL |
| deleted_at | timestamp | NULL |
| deleted_by | int | NULL |
| Column Name | Type | Default |
|-------------|-------------|---------------------|
| id | integer | NOT NULL |
| response_id | int | NOT NULL |
| name | string | NOT NULL |
| mime | string | NOT NULL |
| created_at | timestamp | current timestamp |
| created_by | int | NULL |
| updated_at | timestamp | current timestamp |
| modified_by | int | NULL |
| deleted_at | timestamp | NULL |
| deleted_by | int | NULL |
| Column Name | Type | Default |
|-------------|-----------|------------|
| id | integer | NOT NULL |
| name | string | NOT NULL |
| entity | enum | NOT NULL |
| enabled | boolean | 1 |
| Column Name | Type | Default |
|-------------|-----------|------------|
| id | int | NOT NULL |
| ticket_id | int | NOT NULL |
| tag_id | int | NOT NULL |
$ticket = ticket()->createAsUser($userId, $ticketData)
$ticket = ticket()->createAsEntity($entityId, $ticketData)
$ticket->reOpen()
->open()
->archived()
$ticket->setCategory($id)
->removeCategory()
$ticket->setInternalGroup($id)
->removeInternalGroup()
$ticket->attachTags([$tagId1,$tagId2,$tagId3])
->detachTags([$tagId1])
->syncTags([$tagId4, $tagId5, $tagId6])
$reponse = $ticket->replyAsUser($userId, $responseData)
$reponse = $ticket->replyAsEntity($entityId, $responseData)
$response->markAsInternalMessage()
->markAsExternalMessage()
$response->attachDocuments($attachments, function (AttachmentRepository $repository) use ($uploads){
$repository->upload($uploads, '/path/to/folder');
})
$ticket = ticket()
->createAsUser($userId, $ticketData)
->setCategory($categoryId
->setInternalGroup($internalGroupId
->attachTags([$tagId1,$tagId2,$tagId3])
->detachTags([$tagId1])
->syncTags([$tagId4, $tagId5, $tagId6])
->reOpen()
->open()
->archived()
->replyAsUser($userId, $responseData)
->markAsInternalMessage()
->attachDocuments($attachments, function (AttachmentRepository $repository) use ($uploads){
$repository->upload($uploads, '/path/to/folder');
})
->getTicket();
$ticket = ticket()
->createAsUser($userId, $ticketData)
->replyAsUser($userId, $responseData)
->markAsInternalMessage()
->attachDocuments($attachments, function (AttachmentRepository $repository) use ($uploads){
$repository->upload($uploads, '/path/to/folder');
})
->getTicket();
composer test