diff --git a/config/laravel_ticket.php b/config/laravel_ticket.php index 4f5c6ac..ca6b20f 100644 --- a/config/laravel_ticket.php +++ b/config/laravel_ticket.php @@ -1,4 +1,10 @@ [ + 'ticket' => Ticket::class, + 'message' => Message::class, + 'category' => Category::class, + 'labels' => Label::class + ], + 'table_names' => [ /** * Tickets table @@ -20,16 +33,16 @@ /** * Categories table for the tickets */ - 'categories' => 'categories', + 'categories' => 'ticket_categories', /** * Labels table for the tickets */ - 'labels' => 'labels', + 'labels' => 'ticket_labels', /** - * Messages table to appears in the ticket + * Messages table to appear in the ticket */ 'messages' => [ - 'table' => 'messages', + 'table' => 'ticket_messages', /** * This is the foreing key for associated to the ticket * If you renamed the ticket table, you should consider @@ -52,7 +65,7 @@ * @see https://laravel.com/docs/9.x/eloquent-relationships#many-to-many */ 'label_ticket' => [ - 'table' => 'label_ticket', + 'table' => 'ticket_label', 'columns' => [ 'label_foreign_id' => 'label_id', 'ticket_foreign_id' => 'ticket_id', @@ -66,7 +79,7 @@ * @see https://laravel.com/docs/9.x/eloquent-relationships#many-to-many */ 'category_ticket' => [ - 'table' => 'category_ticket', + 'table' => 'ticket_category', 'columns' => [ 'category_foreign_id' => 'category_id', 'ticket_foreign_id' => 'ticket_id', diff --git a/src/Concerns/HasTickets.php b/src/Concerns/HasTickets.php index 6d097b6..ec2dedd 100644 --- a/src/Concerns/HasTickets.php +++ b/src/Concerns/HasTickets.php @@ -13,7 +13,7 @@ trait HasTickets */ public function tickets(): HasMany { - return $this->hasMany(Ticket::class, 'user_id'); + return $this->hasMany(config('laravel_ticket.models.ticket', Ticket::class), 'user_id'); } /** @@ -21,6 +21,6 @@ public function tickets(): HasMany */ public function messages(): HasMany { - return $this->hasMany(Message::class, 'user_id'); + return $this->hasMany(config('laravel_ticket.models.message', Message::class), 'user_id'); } } diff --git a/src/Concerns/InteractsWithTickets.php b/src/Concerns/InteractsWithTickets.php index 7c2d8a3..26efbec 100644 --- a/src/Concerns/InteractsWithTickets.php +++ b/src/Concerns/InteractsWithTickets.php @@ -65,7 +65,7 @@ public function isOpen(): bool */ public function isClosed(): bool { - return ! $this->isOpen(); + return !$this->isOpen(); } /** @@ -81,7 +81,7 @@ public function isResolved(): bool */ public function isUnresolved(): bool { - return ! $this->isResolved(); + return !$this->isResolved(); } /** @@ -97,7 +97,7 @@ public function isLocked(): bool */ public function isUnlocked(): bool { - return ! $this->isLocked(); + return !$this->isLocked(); } /** @@ -190,8 +190,15 @@ public function reopenAsUnresolved(): self */ public function assignTo(Model|int $user): self { + + if ($user instanceof Model) { + $id = $user->getKey(); + }else{ + $id = $user; + } + $this->update([ - 'assigned_to' => $user, + 'assigned_to' => $id, ]); return $this; diff --git a/src/Enums/Status.php b/src/Enums/Status.php index 518dfc1..d020d04 100644 --- a/src/Enums/Status.php +++ b/src/Enums/Status.php @@ -6,5 +6,6 @@ enum Status: string { case OPEN = 'open'; case CLOSED = 'closed'; + case ANSWERED = 'answered'; case ARCHIVED = 'archived'; } diff --git a/src/Models/Category.php b/src/Models/Category.php index 908f072..a613634 100644 --- a/src/Models/Category.php +++ b/src/Models/Category.php @@ -24,7 +24,7 @@ class Category extends Model */ public function tickets(): BelongsToMany { - return $this->belongsToMany(Ticket::class); + return $this->belongsToMany(config('laravel_ticket.models.ticket', Ticket::class)); } /** diff --git a/src/Models/Label.php b/src/Models/Label.php index c8357c5..07fe442 100644 --- a/src/Models/Label.php +++ b/src/Models/Label.php @@ -24,7 +24,7 @@ class Label extends Model */ public function tickets(): BelongsToMany { - return $this->belongsToMany(Ticket::class); + return $this->belongsToMany(config('laravel_ticket.models.ticket', Ticket::class)); } /** diff --git a/src/Models/Message.php b/src/Models/Message.php index 6ed9a4a..094eef3 100644 --- a/src/Models/Message.php +++ b/src/Models/Message.php @@ -31,7 +31,7 @@ public function ticket(): BelongsTo $tableName = config('laravel_ticket.table_names.messages', 'messages'); return $this->belongsTo( - Ticket::class, + config('laravel_ticket.models.ticket', Ticket::class), $tableName['columns']['ticket_foreing_id'] ); } diff --git a/src/Models/Ticket.php b/src/Models/Ticket.php index b7fd562..747d073 100644 --- a/src/Models/Ticket.php +++ b/src/Models/Ticket.php @@ -61,7 +61,7 @@ public function messages(): HasMany $tableName = config('laravel_ticket.table_names.messages', 'messages'); return $this->hasMany( - Message::class, + config('laravel_ticket.models.message', Message::class), (string) $tableName['columns']['ticket_foreing_id'], ); } @@ -74,7 +74,7 @@ public function categories(): BelongsToMany $table = config('laravel_ticket.table_names.category_ticket', 'category_ticket'); return $this->belongsToMany( - Category::class, + config('laravel_ticket.models.category', Category::class), $table['table'], $table['columns']['ticket_foreign_id'], $table['columns']['category_foreign_id'], @@ -89,7 +89,7 @@ public function labels(): BelongsToMany $table = config('laravel_ticket.table_names.label_ticket', 'label_ticket'); return $this->belongsToMany( - Label::class, + config('laravel_ticket.models.label', Label::class), $table['table'], $table['columns']['ticket_foreign_id'], $table['columns']['label_foreign_id'],