ADD: municipality

This commit is contained in:
Juan Felipe Zapata Moreno 2025-11-03 15:43:12 -06:00
parent fae8979532
commit 7a5bf3a2a0
6 changed files with 178 additions and 0 deletions

View File

@ -0,0 +1,72 @@
<?php namespace App\Http\Controllers\Repuve;
/**
* @copyright (c) 2025 Notsoweb Software (https://notsoweb.com) - All Rights Reserved
*/
use App\Models\Municipality;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Notsoweb\ApiResponse\Enums\ApiResponse;
/**
* Descripción
*
* @author Moisés Cortés C. <moises.cortes@notsoweb.com>
*
* @version 1.0.0
*/
class MunicipalityController extends Controller
{
public function index()
{
$municipalities = Municipality::all();
return ApiResponse::OK->response([
'data' => $municipalities,
]);
}
public function store(Request $request)
{
$request->validate([
'code' => 'required|unique:municipalities,code',
'name' => 'required|string',
]);
$municipality = Municipality::create([
'code' => $request->input('code'),
'name' => $request->input('name'),
]);
return ApiResponse::CREATED->response([
'data' => $municipality,
]);
}
public function update(Request $request, $id)
{
$municipality = Municipality::findOrFail($id);
$request->validate([
'code' => 'required|unique:municipalities,code,' . $municipality->id,
'name' => 'required|string',
]);
$municipality->update([
'code' => $request->input('code'),
'name' => $request->input('name'),
]);
return ApiResponse::OK->response([
'data' => $municipality,
]);
}
public function destroy($id)
{
$municipality = Municipality::findOrFail($id);
$municipality->delete();
return ApiResponse::NO_CONTENT->response();
}
}

View File

@ -0,0 +1,22 @@
<?php namespace App\Models;
/**
* @copyright (c) 2025 Notsoweb Software (https://notsoweb.com) - All Rights Reserved
*/
use Illuminate\Database\Eloquent\Model;
/**
* Descripción
*
* @author Moisés Cortés C. <moises.cortes@notsoweb.com>
*
* @version 1.0.0
*/
class Municipality extends Model
{
protected $fillable = [
'code',
'name',
];
}

View File

@ -0,0 +1,29 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('municipalities', function (Blueprint $table) {
$table->id();
$table->string('code')->unique();
$table->string('name');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('municipalities');
}
};

View File

@ -25,5 +25,6 @@ public function run(): void
$this->call(ModuleSeeder::class);
$this->call(CatalogNameImgSeeder::class);
$this->call(MunicipalitySeeder::class);
}
}

View File

@ -0,0 +1,51 @@
<?php
namespace Database\Seeders;
/**
* @copyright (c) 2025 Notsoweb Software (https://notsoweb.com) - All Rights Reserved
*/
use App\Models\Municipality;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
/**
* Descripción
*
* @author Moisés Cortés C. <moises.cortes@notsoweb.com>
*
* @version 1.0.0
*/
class MunicipalitySeeder extends Seeder
{
/**
* Ejecutar sembrado de base de datos
*/
public function run(): void
{
$municipalities = [
['code' => '001', 'name' => 'Balancán'],
['code' => '002', 'name' => 'Cárdenas'],
['code' => '003', 'name' => 'Centla'],
['code' => '004', 'name' => 'Centro'],
['code' => '005', 'name' => 'Comalcalco'],
['code' => '006', 'name' => 'Cunduacán'],
['code' => '007', 'name' => 'Emiliano Zapata'],
['code' => '008', 'name' => 'Huimanguillo'],
['code' => '009', 'name' => 'Jalapa'],
['code' => '010', 'name' => 'Jalpa de Méndez'],
['code' => '011', 'name' => 'Jonuta'],
['code' => '012', 'name' => 'Macuspana'],
['code' => '013', 'name' => 'Nacajuca'],
['code' => '014', 'name' => 'Paraíso'],
['code' => '015', 'name' => 'Tacotalpa'],
['code' => '016', 'name' => 'Teapa'],
['code' => '017', 'name' => 'Tenosique'],
];
foreach ($municipalities as $municipality) {
Municipality::create($municipality);
}
}
}

View File

@ -1,5 +1,7 @@
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Repuve\MunicipalityController;
use App\Http\Controllers\Repuve\RecordController;
use App\Http\Controllers\Repuve\ModuleController;
use App\Http\Controllers\Repuve\CancellationController;
@ -50,6 +52,7 @@
Route::post('/moduleCreate', [ModuleController::class, 'store']);
Route::put('/moduleUpdate/{id}', [ModuleController::class, 'update']);
Route::patch('/moduleStatus/{id}', [ModuleController::class, 'toggleStatus']);
Route::resource('municipality', MunicipalityController::class);
//Rutas de dispositivos
Route::get('/devices', [DeviceController::class, 'index']);