* * @version 1.0.0 */ class RoleSeeder extends Seeder { use RolePermission; /** * Run the database seeds. */ public function run(): void { // === USUARIOS === $users = PermissionType::updateOrCreate(['name' => 'Usuarios']); [ $userIndex, $userCreate, $userEdit, $userDestroy ] = $this->onCRUD('users', $users, 'api'); // === ROLES === $roles = PermissionType::updateOrCreate(['name' => 'Roles']); [ $roleIndex, $roleCreate, $roleEdit, $roleDestroy ] = $this->onCRUD('roles', $roles, 'api'); $rolePermissions = $this->onPermission('roles.permissions', 'Permisos de roles', $roles, 'api'); // === MÓDULOS === $modules = PermissionType::updateOrCreate(['name' => 'Módulos']); [ $moduleIndex, $moduleCreate, $moduleEdit, $moduleDestroy ] = $this->onCRUD('module', $modules, 'api'); $moduleShow = $this->onPermission('module.show', 'Ver módulo', $modules, 'api'); $moduleToggleStatus = $this->onPermission('module.toggle_status', 'Cambiar estado del módulo', $modules, 'api'); // === DISPOSITIVOS MÓVILES === $devices = PermissionType::updateOrCreate(['name' => 'Dispositivos Móviles']); [ $deviceIndex, $deviceCreate, $deviceEdit, $deviceDestroy ] = $this->onCRUD('devices', $devices, 'api'); $deviceToggleStatus = $this->onPermission('devices.toggle_status', 'Cambiar estado del dispositivo', $devices, 'api'); // === INSCRIPCIONES === $inscriptions = PermissionType::updateOrCreate(['name' => 'Proceso de Sustitución por primera vez']); $inscriptionVehicle = $this->onPermission('inscription.vehicle', 'Inscribir vehículo', $inscriptions, 'api'); $inscriptionSearchNational = $this->onPermission('inscription.search.national', 'Buscar en consulta nacional', $inscriptions, 'api'); $inscriptionSearch = $this->onPermission('inscription.search', 'Buscar en consulta', $inscriptions, 'api'); // === CANCELACIONES === $cancellations = PermissionType::updateOrCreate(['name' => 'Cancelaciones']); $cancellationTagNoAsignado = $this->onPermission('cancellations.cancel_tag_no_asignado', 'Cancelar constancia no asignada', $cancellations, 'api'); // === SISTEMA === $system = PermissionType::updateOrCreate(['name' => 'Sistema']); $systemSettings = $this->onPermission('system.settings', 'Configurar credenciales REPUVE', $system, 'api'); // === ACTUALIZAR REGISTRO === $updates = PermissionType::updateOrCreate(['name' => 'Actualizar Registro']); $updateVehicleData = $this->onPermission('updates.vehicle-data', 'Actualizar datos de vehículo por formulario', $updates, 'api'); $updateVehicleUpdate = $this->onPermission('updates.vehicle-update', 'Actualizar datos de vehículo', $updates, 'api'); $updateResendToRepuve = $this->onPermission('updates.resend-to-repuve', 'Reenviar a REPUVE', $updates, 'api'); // === GENERAR FORMATOS === $formats = PermissionType::updateOrCreate(['name' => 'Generar Formatos']); $recordGeneratePdf = $this->onPermission('records.generate_pdf', 'Generar Hoja de recepción', $formats, 'api'); $recordGeneratePdfForm = $this->onPermission('records.generate_pdf_form', 'Generar solicitud de sustitución', $formats, 'api'); $recordGeneratePdfVerification = $this->onPermission('records.generate_pdf_verification', 'Generar Hoja de verificación', $formats, 'api'); $recordGeneratePdfConstancia = $this->onPermission('records.generate_pdf_constancia', 'Generar Impresión en la constancia', $formats, 'api'); // === REPORTES === $reports = PermissionType::updateOrCreate(['name' => 'Reportes - Excel']); $reportVehicleUpdates = $this->onPermission('reports.vehicle_updates.index', 'Reporte de actualizaciones', $reports, 'api'); $reportSubstitutions = $this->onPermission('reports.substitutions.index', 'Reporte de sustituciones', $reports, 'api'); $reportCancellations = $this->onPermission('reports.cancellations.index', 'Reporte de cancelaciones', $reports, 'api'); $reportGeneral = $this->onPermission('reports.general.index', 'Reporte general', $reports, 'api'); $reportSearchRecords = $this->onPermission('reports.search_records.index', 'Reporte de consulta nacional', $reports, 'api'); // === ACTIVIDAD === $activities = PermissionType::updateOrCreate(['name' => 'Actividad']); $activityIndex = $this->onPermission('activities.index', 'Ver actividad de usuarios', $activities, 'api'); // === CAJAS === $packages = PermissionType::updateOrCreate(['name' => 'Cajas']); [ $packageIndex, $packageCreate, $packageEdit, $packageDestroy ] = $this->onCRUD('packages', $packages, 'api'); $packageBoxTags = $this->onPermission('packages.box_tags', 'Ver constancias de caja', $packages, 'api'); // === CONSTANCIAS DE INSCRIPCIÓN === $tags = PermissionType::updateOrCreate(['name' => 'Constancias de Inscripción']); [ $tagIndex, $tagCreate, $tagEdit, $tagDestroy, ] = $this->onCRUD('tags', $tags, 'api'); $tagAssignToModule = $this->onPermission('tags.assign_to_module', 'Asignar etiquetas a módulo', $tags, 'api'); // ========================================================= // ROLES // ========================================================= // Desarrollador Role::updateOrCreate([ 'name' => 'developer', 'guard_name' => 'api' ], ['description' => 'Desarrollador'])->syncPermissions(Permission::all()); // Administrador Role::updateOrCreate([ 'name' => 'admin', 'guard_name' => 'api' ], ['description' => 'Administrador'])->syncPermissions( // Usuarios $userIndex, $userCreate, $userEdit, $userDestroy, // Roles $roleIndex, $roleCreate, $roleEdit, $roleDestroy, $rolePermissions, // Módulos $moduleIndex, $moduleCreate, $moduleEdit, $moduleDestroy, $moduleShow, $moduleToggleStatus, // Dispositivos $deviceIndex, $deviceCreate, $deviceEdit, $deviceDestroy, $deviceToggleStatus, // Sistema $systemSettings, // Inscripciones $inscriptionVehicle, $inscriptionSearch, $inscriptionSearchNational, // Cancelaciones $cancellationTagNoAsignado, // Actualizaciones $updateVehicleData, $updateVehicleUpdate, $updateResendToRepuve, // Generar formatos $recordGeneratePdf, $recordGeneratePdfVerification, $recordGeneratePdfConstancia, $recordGeneratePdfForm, // Reportes $reportVehicleUpdates, $reportSubstitutions, $reportCancellations, $reportGeneral, $reportSearchRecords, // Cajas $packageIndex, $packageCreate, $packageEdit, $packageDestroy, $packageBoxTags, // Constancias $tagIndex, $tagCreate, $tagEdit, $tagDestroy, ); // Encargado Role::updateOrCreate([ 'name' => 'encargado', 'guard_name' => 'api' ], ['description' => 'Encargado'])->syncPermissions( // Dispositivos $deviceIndex, $deviceCreate, $deviceEdit, $deviceDestroy, $deviceToggleStatus, // Inscripciones $inscriptionVehicle, $inscriptionSearch, $inscriptionSearchNational, // Cancelaciones $cancellationTagNoAsignado, // Actualizaciones $updateVehicleData, $updateVehicleUpdate, // Generar formatos $recordGeneratePdf, $recordGeneratePdfVerification, $recordGeneratePdfConstancia, $recordGeneratePdfForm, // Reportes $reportVehicleUpdates, $reportSubstitutions, $reportCancellations, $reportGeneral, $reportSearchRecords, // Cajas $packageIndex, $packageCreate, $packageEdit, $packageDestroy, $packageBoxTags, // Constancias $tagIndex, $tagCreate, $tagEdit, $tagDestroy, $tagAssignToModule, ); // Perito Role::updateOrCreate([ 'name' => 'perito', 'guard_name' => 'api' ], ['description' => 'Perito'])->syncPermissions( // Generar formatos $recordGeneratePdf, $recordGeneratePdfVerification, $recordGeneratePdfConstancia, $recordGeneratePdfForm, // Cajas $packageIndex, $packageBoxTags, // Constancias $tagIndex, ); } }