From 0c54404d328f94270482d49b9750f2a0d795d3bf Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Tue, 5 Aug 2025 09:29:50 +0330 Subject: [PATCH 1/3] add messages routes --- .../SystemMessages/OperatorService.php | 6 +-- routes/web.php | 48 +++++++++++++++++++ 2 files changed, 49 insertions(+), 5 deletions(-) diff --git a/app/Services/Dashboard/Province/SystemMessages/OperatorService.php b/app/Services/Dashboard/Province/SystemMessages/OperatorService.php index 54460b8..cf5cc20 100644 --- a/app/Services/Dashboard/Province/SystemMessages/OperatorService.php +++ b/app/Services/Dashboard/Province/SystemMessages/OperatorService.php @@ -10,12 +10,8 @@ class OperatorService { public function dataTable(Request $request) { - $user = auth()->user(); - - $query = SystemMessage::query()->where('edare_shahri_id', '=', $user->edarate_shahri_id); - return DataTableFacade::run( - $query, + SystemMessage::query(), $request, allowedFilters: ['*'], allowedSortings: ['*'], diff --git a/routes/web.php b/routes/web.php index b65918b..9be70cc 100644 --- a/routes/web.php +++ b/routes/web.php @@ -128,4 +128,52 @@ Route::prefix('server')->group(function () { ->group(function () { Route::get('/', 'index')->name('index'); }); + + Route::middleware('auth') + ->prefix('system_messages') + ->name('systemMessages.') + ->group(function () { + Route::prefix('operator') + ->name('systemMessages.') + ->controller(\App\Http\Controllers\ProvinceDashboard\SystemMessages\OperatorController::class) + ->group(function () { + Route::get('/', 'index')->name('index'); + Route::get('/excel', 'excel')->name('excel'); + Route::get('/{systemMessage}', 'show')->name('show'); + }); + + Route::prefix('supervisor') + ->name('systemMessages.') + ->controller(\App\Http\Controllers\ProvinceDashboard\SystemMessages\SupervisorController::class) + ->group(function () { + Route::get('/', 'index')->name('index'); + Route::get('/excel', 'excel')->name('excel'); + Route::get('/{systemMessage}', 'show')->name('show'); + Route::post('/{systemMessage}', 'rate')->name('rate'); + }); + }); + + Route::middleware('auth') + ->prefix('people_messages') + ->name('peopleMessages.') + ->group(function () { + Route::prefix('operator') + ->name('peopleMessages.') + ->controller(\App\Http\Controllers\ProvinceDashboard\PeopleMessages\OperatorController::class) + ->group(function () { + Route::get('/', 'index')->name('index'); + Route::get('/excel', 'excel')->name('excel'); + Route::post('/{peopleMessage}', 'handle')->name('handle'); + Route::get('/{peopleMessage}', 'show')->name('show'); + }); + + Route::prefix('supervisor') + ->name('peopleMessages.') + ->controller(\App\Http\Controllers\ProvinceDashboard\PeopleMessages\SupervisorController::class) + ->group(function () { + Route::get('/', 'index')->name('index'); + Route::get('/excel', 'excel')->name('excel'); + Route::get('/{peopleMessage}', 'show')->name('show'); + }); + }); }); From 8c64f02eaced674bc5db72aeb9e550c836942223 Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Tue, 5 Aug 2025 14:03:46 +0330 Subject: [PATCH 2/3] add fake data --- app/Enums/PeopleMessageActions.php | 8 +++++--- database/factories/OperatorDialogueFactory.php | 8 +++++++- database/factories/PeopleMessageFactory.php | 12 +++++++++++- database/factories/SystemMessageFactory.php | 9 ++++++++- ...025_07_29_063532_create_system_messages_table.php | 1 + ...025_07_29_094322_create_people_messages_table.php | 2 +- database/seeders/OperatorDialogueSeeder.php | 3 ++- database/seeders/PeopleMessageActionSeeder.php | 9 ++++++++- database/seeders/PeopleMessageSeeder.php | 3 ++- database/seeders/SystemMessageSeeder.php | 3 ++- 10 files changed, 47 insertions(+), 11 deletions(-) diff --git a/app/Enums/PeopleMessageActions.php b/app/Enums/PeopleMessageActions.php index 41e2def..71a8fec 100644 --- a/app/Enums/PeopleMessageActions.php +++ b/app/Enums/PeopleMessageActions.php @@ -4,9 +4,11 @@ namespace App\Enums; enum PeopleMessageActions: int { - case x = 1; - case y = 2; - case z = 3; + case ADAM_NIAZ_BE_SABT_MOSHKEL_RAH = 1; + case ADAM_NIAZ_BE_SABT_MOSHKEL_HAML_NAGHL = 2; + case ADAM_NIAZ_BE_SABT_MOSHKEL_AVAREZI = 3; + case SABT_SAVANEH_MOSHKEL_RAH = 4; + case SABT_SAVANEH_MOSHKEL_HAML_NAGHL = 5; public static function name(int $state): string { diff --git a/database/factories/OperatorDialogueFactory.php b/database/factories/OperatorDialogueFactory.php index f405551..64c7775 100644 --- a/database/factories/OperatorDialogueFactory.php +++ b/database/factories/OperatorDialogueFactory.php @@ -2,6 +2,7 @@ namespace Database\Factories; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; /** @@ -17,7 +18,12 @@ class OperatorDialogueFactory extends Factory public function definition(): array { return [ - // + 'cdr_unique_id' => $this->faker->uuid(), + 'date' => $this->faker->date(), + 'supervisor_id' => User::factory(), + 'is_listen' => $this->faker->boolean(), + 'is_good' => $this->faker->boolean(), + 'description' => $this->faker->text(), ]; } } diff --git a/database/factories/PeopleMessageFactory.php b/database/factories/PeopleMessageFactory.php index 05ee363..b3f7e32 100644 --- a/database/factories/PeopleMessageFactory.php +++ b/database/factories/PeopleMessageFactory.php @@ -2,6 +2,7 @@ namespace Database\Factories; +use App\Enums\PeopleMessageActions; use Illuminate\Database\Eloquent\Factories\Factory; /** @@ -17,7 +18,16 @@ class PeopleMessageFactory extends Factory public function definition(): array { return [ - // + 'caller_phone_number' => $this->faker->numerify('09#########'), + 'date' => $this->faker->date(), + 'voice' => $this->faker->name, + 'review_duration' => $this->faker->numberBetween(30, 60), + 'listen_at' => $this->faker->dateTime, + 'is_listen' => $this->faker->boolean(), + 'action_id' => $this->faker->randomElement([PeopleMessageActions::x->value, PeopleMessageActions::y->value]), + 'action_name' => $this->faker->word(), + 'description' => $this->faker->text(), + 'savaneh_id' => $this->faker->randomElement([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]), ]; } } diff --git a/database/factories/SystemMessageFactory.php b/database/factories/SystemMessageFactory.php index 7be37a9..c58c56d 100644 --- a/database/factories/SystemMessageFactory.php +++ b/database/factories/SystemMessageFactory.php @@ -17,7 +17,14 @@ class SystemMessageFactory extends Factory public function definition(): array { return [ - // + 'duration' => $this->faker->numberBetween(30, 60), + 'date' => $this->faker->date(), + 'voice' => $this->faker->name, + 'description' => $this->faker->text(), + 'message_quality' => $this->faker->numberBetween(0, 1), + 'format_quality' => $this->faker->numberBetween(0, 1), + 'type_id' => $this->faker->numberBetween(1, 2), + 'type_name' => $this->faker->name, ]; } } diff --git a/database/migrations/2025_07_29_063532_create_system_messages_table.php b/database/migrations/2025_07_29_063532_create_system_messages_table.php index 089c5c7..f658bee 100644 --- a/database/migrations/2025_07_29_063532_create_system_messages_table.php +++ b/database/migrations/2025_07_29_063532_create_system_messages_table.php @@ -16,6 +16,7 @@ return new class extends Migration $table->integer('duration'); $table->dateTime('date'); $table->string('voice'); + $table->string('description')->nullable(); $table->integer('message_quality'); $table->integer('format_quality'); $table->integer('type_id'); diff --git a/database/migrations/2025_07_29_094322_create_people_messages_table.php b/database/migrations/2025_07_29_094322_create_people_messages_table.php index b9f6f53..ae6e6f4 100644 --- a/database/migrations/2025_07_29_094322_create_people_messages_table.php +++ b/database/migrations/2025_07_29_094322_create_people_messages_table.php @@ -19,7 +19,7 @@ return new class extends Migration $table->integer('review_duration')->nullable(); $table->dateTime('listen_at')->nullable(); $table->boolean('is_listen')->default(false); - $table->foreignId('action_id')->nullable()->constrained(); + $table->foreignId('action_id')->nullable()->constrained('people_message_actions'); $table->string('action_name')->nullable(); $table->string('description')->nullable(); $table->unsignedBigInteger('savaneh_id')->nullable(); diff --git a/database/seeders/OperatorDialogueSeeder.php b/database/seeders/OperatorDialogueSeeder.php index e604a1f..a54e1de 100644 --- a/database/seeders/OperatorDialogueSeeder.php +++ b/database/seeders/OperatorDialogueSeeder.php @@ -2,6 +2,7 @@ namespace Database\Seeders; +use App\Models\OperatorDialogue; use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder; @@ -12,6 +13,6 @@ class OperatorDialogueSeeder extends Seeder */ public function run(): void { - // + OperatorDialogue::factory()->count(10)->create(); } } diff --git a/database/seeders/PeopleMessageActionSeeder.php b/database/seeders/PeopleMessageActionSeeder.php index c8317f5..06294c2 100644 --- a/database/seeders/PeopleMessageActionSeeder.php +++ b/database/seeders/PeopleMessageActionSeeder.php @@ -4,6 +4,7 @@ namespace Database\Seeders; use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder; +use Illuminate\Support\Facades\DB; class PeopleMessageActionSeeder extends Seeder { @@ -12,6 +13,12 @@ class PeopleMessageActionSeeder extends Seeder */ public function run(): void { - // + DB::table('people_message_actions')->insert([ + ['id' => 1, 'name' => 'عدم نیاز به ثبت (مشکل راه)', 'created_at' => now(), 'updated_at' => now()], + ['id' => 2, 'name' => 'عدم نیاز به ثبت (مشکل حمل و نقلی)', 'created_at' => now(), 'updated_at' => now()], + ['id' => 3, 'name' => 'عدم نیاز به ثبت (مشکل عوارضی)', 'created_at' => now(), 'updated_at' => now()], + ['id' => 4, 'name' => 'ثبت سوانح (مشکل راه)', 'created_at' => now(), 'updated_at' => now()], + ['id' => 5, 'name' => 'ثبت سوانح (مشکل حمل و نقلی)', 'created_at' => now(), 'updated_at' => now()], + ]); } } diff --git a/database/seeders/PeopleMessageSeeder.php b/database/seeders/PeopleMessageSeeder.php index 8972a43..8af12cf 100644 --- a/database/seeders/PeopleMessageSeeder.php +++ b/database/seeders/PeopleMessageSeeder.php @@ -2,6 +2,7 @@ namespace Database\Seeders; +use App\Models\PeopleMessage; use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder; @@ -12,6 +13,6 @@ class PeopleMessageSeeder extends Seeder */ public function run(): void { - // + PeopleMessage::factory()->count(10)->create(); } } diff --git a/database/seeders/SystemMessageSeeder.php b/database/seeders/SystemMessageSeeder.php index 01ffbef..7ab593c 100644 --- a/database/seeders/SystemMessageSeeder.php +++ b/database/seeders/SystemMessageSeeder.php @@ -2,6 +2,7 @@ namespace Database\Seeders; +use App\Models\SystemMessage; use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder; @@ -12,6 +13,6 @@ class SystemMessageSeeder extends Seeder */ public function run(): void { - // + SystemMessage::factory()->count(10)->create(); } } From 66a4f36d36c1b65099a5cddd46689138bb98516b Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Wed, 6 Aug 2025 14:38:46 +0330 Subject: [PATCH 3/3] order by id --- .../SystemMessages/SupervisorController.php | 1 + .../Dashboard/Province/PeopleMessages/DataTableService.php | 6 +----- .../Dashboard/Province/SystemMessages/OperatorService.php | 2 +- .../Dashboard/Province/SystemMessages/SupervisorService.php | 6 ++---- database/factories/PeopleMessageFactory.php | 2 +- .../2025_07_29_063532_create_system_messages_table.php | 4 ++-- 6 files changed, 8 insertions(+), 13 deletions(-) diff --git a/app/Http/Controllers/ProvinceDashboard/SystemMessages/SupervisorController.php b/app/Http/Controllers/ProvinceDashboard/SystemMessages/SupervisorController.php index af3cbac..914f594 100644 --- a/app/Http/Controllers/ProvinceDashboard/SystemMessages/SupervisorController.php +++ b/app/Http/Controllers/ProvinceDashboard/SystemMessages/SupervisorController.php @@ -34,6 +34,7 @@ class SupervisorController extends Controller $systemMessage->update([ 'message_quality' => $request->message_quality, 'format_quality' => $request->format_quality, + 'description' => $request->description, ]); return $this->successResponse(); } diff --git a/app/Services/Dashboard/Province/PeopleMessages/DataTableService.php b/app/Services/Dashboard/Province/PeopleMessages/DataTableService.php index 6fe18db..b34f33a 100644 --- a/app/Services/Dashboard/Province/PeopleMessages/DataTableService.php +++ b/app/Services/Dashboard/Province/PeopleMessages/DataTableService.php @@ -10,12 +10,8 @@ class DataTableService { public function index(Request $request) { - $user = auth()->user(); - - $query = PeopleMessage::query()->where('edare_shahri_id', '=', $user->edarate_shahri_id); - return DataTableFacade::run( - $query, + PeopleMessage::query()->orderBy('id'), $request, allowedFilters: ['*'], allowedSortings: ['*'], diff --git a/app/Services/Dashboard/Province/SystemMessages/OperatorService.php b/app/Services/Dashboard/Province/SystemMessages/OperatorService.php index cf5cc20..453f242 100644 --- a/app/Services/Dashboard/Province/SystemMessages/OperatorService.php +++ b/app/Services/Dashboard/Province/SystemMessages/OperatorService.php @@ -11,7 +11,7 @@ class OperatorService public function dataTable(Request $request) { return DataTableFacade::run( - SystemMessage::query(), + SystemMessage::query()->orderBy('id'), $request, allowedFilters: ['*'], allowedSortings: ['*'], diff --git a/app/Services/Dashboard/Province/SystemMessages/SupervisorService.php b/app/Services/Dashboard/Province/SystemMessages/SupervisorService.php index 8f6584c..52a254d 100644 --- a/app/Services/Dashboard/Province/SystemMessages/SupervisorService.php +++ b/app/Services/Dashboard/Province/SystemMessages/SupervisorService.php @@ -10,14 +10,12 @@ class SupervisorService { public function dataTable(Request $request) { - $query = SystemMessage::query(); - return DataTableFacade::run( - $query, + SystemMessage::query()->orderBy('id'), $request, allowedFilters: ['*'], allowedSortings: ['*'], - allowedSelects: ['id','duration','date', 'voice', 'message_quality', 'format_quality', 'type_id', 'type_name'] + allowedSelects: ['id','duration','date', 'voice', 'message_quality', 'format_quality', 'type_id', 'type_name', 'description'] ); } } diff --git a/database/factories/PeopleMessageFactory.php b/database/factories/PeopleMessageFactory.php index b3f7e32..e2c0107 100644 --- a/database/factories/PeopleMessageFactory.php +++ b/database/factories/PeopleMessageFactory.php @@ -24,7 +24,7 @@ class PeopleMessageFactory extends Factory 'review_duration' => $this->faker->numberBetween(30, 60), 'listen_at' => $this->faker->dateTime, 'is_listen' => $this->faker->boolean(), - 'action_id' => $this->faker->randomElement([PeopleMessageActions::x->value, PeopleMessageActions::y->value]), + 'action_id' => $this->faker->randomElement([PeopleMessageActions::ADAM_NIAZ_BE_SABT_MOSHKEL_AVAREZI->value, PeopleMessageActions::SABT_SAVANEH_MOSHKEL_RAH->value]), 'action_name' => $this->faker->word(), 'description' => $this->faker->text(), 'savaneh_id' => $this->faker->randomElement([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]), diff --git a/database/migrations/2025_07_29_063532_create_system_messages_table.php b/database/migrations/2025_07_29_063532_create_system_messages_table.php index f658bee..15b7ff5 100644 --- a/database/migrations/2025_07_29_063532_create_system_messages_table.php +++ b/database/migrations/2025_07_29_063532_create_system_messages_table.php @@ -17,8 +17,8 @@ return new class extends Migration $table->dateTime('date'); $table->string('voice'); $table->string('description')->nullable(); - $table->integer('message_quality'); - $table->integer('format_quality'); + $table->integer('message_quality')->nullable(); + $table->integer('format_quality')->nullable(); $table->integer('type_id'); $table->string('type_name'); $table->timestamps();