diff --git a/app/Http/Controllers/ServicioController.php b/app/Http/Controllers/ServicioController.php new file mode 100644 index 0000000..689956b --- /dev/null +++ b/app/Http/Controllers/ServicioController.php @@ -0,0 +1,10 @@ +belongsTo(Foto::class, 'foto_id'); + } + + public function profesionales() + { + return $this->hasMany(Profesional::class, 'persona_id'); + } + + public function cliente() + { + return $this->hasOne(Cliente::class, 'persona_id'); + } + + public function telefonos() + { + return $this->belongsToMany(Telefono::class, 'personas_telefonos', 'persona_id', 'telefono_id'); + } +} diff --git a/app/Models/Profesion.php b/app/Models/Profesion.php new file mode 100644 index 0000000..5712618 --- /dev/null +++ b/app/Models/Profesion.php @@ -0,0 +1,23 @@ +hasMany(Profesional::class, 'profesion_id'); + } +} diff --git a/app/Models/Profesional.php b/app/Models/Profesional.php new file mode 100644 index 0000000..3603bc2 --- /dev/null +++ b/app/Models/Profesional.php @@ -0,0 +1,91 @@ +belongsTo(Profesion::class, 'profesion_id'); + } + + public function credencialProfesional() + { + return $this->belongsTo(CredencialeProfesionale::class, 'credencialprofesional_id'); + } + + public function estadoProfesional() + { + return $this->belongsTo(EstadoProfesional::class, 'estadoprofesional_id'); + } + + public function persona() + { + return $this->belongsTo(Persona::class, 'persona_id'); + } + + public function baja() + { + return $this->belongsTo(Baja::class, 'baja_id'); + } + + //Tiene una + + public function agenda() + { + return $this->hasOne(Agenda::class, 'profesional_id'); + } + + public function turnos() + { + return $this->hasMany(Turno::class, 'profesional_id'); + } + + public function documentacionesClientes() + { + return $this->hasMany(DocumentacionCliente::class, 'profesional_id'); + } + + + + + //tablas intermedias + + public function formularios() + { + return $this->belongsToMany(Formulario::class, 'profesionales_formularios') + ->withPivot('estadoformulario') + ->withTimestamps(); + } + + public function servicios() + { + return $this->belongsToMany(Servicio::class, 'profesionales_servicios', 'profesional_id', 'servicio_id'); + } + + public function clientes() + { + return $this->belongsToMany(Cliente::class, 'profesionales_cliente') + ->withPivot('estadorelacion') + ->withTimestamps(); + } + +} diff --git a/app/Models/Servicio.php b/app/Models/Servicio.php new file mode 100644 index 0000000..630676e --- /dev/null +++ b/app/Models/Servicio.php @@ -0,0 +1,50 @@ +belongsTo(Contenido::class, 'contenido_id'); + } + public function profesion() + { + return $this->belongsTo(Profesion::class, 'profesion_id'); + } + public function foto() + { + return $this->belongsTo(Foto::class, 'foto_id'); + } + + // Tiene un + + public function formulario() + { + return $this->hasOne(Formulario::class, 'servicio_id'); + } + + //Tablas intermedias + + public function profesional() + { + return $this->belongsToMany(Profesional::class, 'profesional_servicio', 'servicio_id', 'profesional_id'); + } + + +} diff --git a/database/seeders/AccionLogSeeder.php b/database/seeders/AccionLogSeeder.php new file mode 100644 index 0000000..d135a73 --- /dev/null +++ b/database/seeders/AccionLogSeeder.php @@ -0,0 +1,62 @@ + 'Creación nuevo profesional'], + ['descripcion' => 'Baja profesional'], + ['descripcion' => 'Alta profesional'], + ['descripcion' => 'Edición datos profesional'], + + ['descripcion' => 'Creación nuevo servicio'], + ['descripcion' => 'Baja servicio'], + ['descripcion' => 'Alta servicio'], + ['descripcion' => 'Edición datos servicio'], + + ['descripcion' => 'Creación nueva profesion'], + ['descripcion' => 'Baja profesion'], + ['descripcion' => 'Alta profesion'], + ['descripcion' => 'Edición datos profesion'], + + ['descripcion', 'Creación nuevo cliente'], + ['descripcion', 'Edición datos cliente'], + ['descripcion', 'Agregó documentación cliente'], + ['descripcion', 'Dar de baja cliente'], + + ['descripcion', 'Asignó un turno'], + ['descripcion', 'Canceló un turno'], + ['descripcion', 'Reprogramó un turno'], + + ['descripcion', 'Aceptó un caso'], + ['descripcion', 'Rechazó un caso'], + ['descripcion', 'Devolvió un caso'], + + ['descripcion', 'Inició sesión'], + ['descripcion', 'Cerró sesión'], + + ['descripcion', 'Solicitud cambio de contraseña'], + ['descripcion', 'Cambio de contraseña exitoso'], + ['descripcion', 'Cambio de contraseña frustrado'], + ]; + + foreach($acciones as $accion) + { + DB::table('accioneslogs')->insert([ + 'descripcion' => $accion['descripcion'], + 'created_at' => now(), + 'updated_at' => now(), + ]); + } + } +} diff --git a/database/seeders/AdministradorSeeder.php b/database/seeders/AdministradorSeeder.php new file mode 100644 index 0000000..25e86d6 --- /dev/null +++ b/database/seeders/AdministradorSeeder.php @@ -0,0 +1,24 @@ + 1, + 'dni' => '40563707', + 'correo' => 'CamyBelini@gmail.com', + 'credencialprofesional_id' => 1, + ]; + + BD::table('administradores')->insert($administrador); + } +} diff --git a/database/seeders/ContenidoWebSeeder.php b/database/seeders/ContenidoWebSeeder.php new file mode 100644 index 0000000..03a536f --- /dev/null +++ b/database/seeders/ContenidoWebSeeder.php @@ -0,0 +1,22 @@ + 'Somos un grupo de abogadas recibidas de la Universidad Nacional del Litoral que decidimos trabajar en conjunto para resolver cualquier consulta que caiga en nuestras manos', + ]; + + DB::table('contenidoswebs')->insert('$contenido'); + } +} diff --git a/database/seeders/CredencialProfesionalSeeder.php b/database/seeders/CredencialProfesionalSeeder.php new file mode 100644 index 0000000..7bae417 --- /dev/null +++ b/database/seeders/CredencialProfesionalSeeder.php @@ -0,0 +1,40 @@ + 'Administrador-Camila', + 'contra' => bcrypt('AbogadasDelLitoral-2026'), + 'rol' => 'Administrador', + ], + [ + 'usuario' => '43293244-2', //'DNI de la persona'+'-'+'codigo de profesion' + 'contra' => bcrypt('contraseñaluciano'), + 'rol' => 'Profesional', + ], + [ + 'usuario' => '40563707-1', //'DNI de la persona'+'-'+'codigo de profesion' + 'contra' => bcrypt('contraseñacamila'), + 'rol' => 'Profesional', + ]]; + foreach($credenciales as $credenciales){ + DB::table('credencialesprofesionales')->insert([ + 'usuario' => $credencial['usuario'], + 'contra' => $credencial['contra'], + 'rol' => $credencial['rol'], + 'created_at' => now(), + 'updated_at' => now(), + ]); + }; + } +} diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 6b901f8..37542e6 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -21,5 +21,18 @@ class DatabaseSeeder extends Seeder 'name' => 'Test User', 'email' => 'test@example.com', ]); + + $this->call([ + ProfesionSeeder::class, + EstadoTurnoSeeder::class, + ModalidadSeeder::class, + AccionLogSeeder::class, + FotoSeeder::class, + PersonaSeeder::class, + EstadoProfesionalSeeder::class, + CredencialProfesionalSeeder::class, + ProfesionalSeeder::class, + AdministradorSeeder::class, + ]); } } diff --git a/database/seeders/EstadoProfesionalSeeder.php b/database/seeders/EstadoProfesionalSeeder.php new file mode 100644 index 0000000..8b579e9 --- /dev/null +++ b/database/seeders/EstadoProfesionalSeeder.php @@ -0,0 +1,28 @@ + 'Activo'], + ['descripcion' => 'Baja'], + ]; + + foreach ($estados as $estado){ + DB::table('estadosprofesionales')->insert([ + 'descripcion'=>$estado['descripcion'], + 'created_at' => now(), + 'updated_at' => now(), + ]); + } + } +} diff --git a/database/seeders/EstadoTurnoSeeder.php b/database/seeders/EstadoTurnoSeeder.php new file mode 100644 index 0000000..507f5e9 --- /dev/null +++ b/database/seeders/EstadoTurnoSeeder.php @@ -0,0 +1,32 @@ + 'Pendiente'], + ['descripcion' => 'Confirmado'], + ['descripcion' => 'Rechazadp'], + ['descripcion' => 'Cancelado'], + ['descripcion' => 'Reprogramado'] + ]; + + foreach ($estados as $estado){ + DB::table('estadosturnos')->insert([ + 'descripcion'=>$estado['descripcion'], + 'created_at' => now(), + 'updated_at' => now(), + ]); + } + } +} diff --git a/database/seeders/FotoSeeder.php b/database/seeders/FotoSeeder.php new file mode 100644 index 0000000..18f0e09 --- /dev/null +++ b/database/seeders/FotoSeeder.php @@ -0,0 +1,30 @@ + 'png', 'tamanio_bytes' => 136788, 'nombre' => 'default', 'mime_type' => 'image/png', 'ruta' => 'fotos/default.png'], + ]; + + DB::table('fotos')->insert([ + 'extension' => $fotos[0]['extension'], + 'tamanio_bytes' => $fotos[0]['tamanio_bytes'], + 'nombre' => $fotos[0]['nombre'], + 'mime_type' => $fotos[0]['mime_type'], + 'ruta' => $fotos[0]['ruta'], + 'created_at' => now(), + 'updated_at' => now(), + ]); + } +} diff --git a/database/seeders/ModalidadSeeder.php b/database/seeders/ModalidadSeeder.php new file mode 100644 index 0000000..a281735 --- /dev/null +++ b/database/seeders/ModalidadSeeder.php @@ -0,0 +1,29 @@ + 'Presencial'], + ['descripcion' => 'Virtual'], + ]; + + foreach ($modalidades as $modalidad){ + DB::table('modalidades')->insert([ + 'descripcion'=>$modalidad['descripcion'], + 'created_at' => now(), + 'updated_at' => now(), + ]); + } + } +} diff --git a/database/seeders/PersonaSeeder.php b/database/seeders/PersonaSeeder.php new file mode 100644 index 0000000..3789659 --- /dev/null +++ b/database/seeders/PersonaSeeder.php @@ -0,0 +1,44 @@ + '40563707', + 'nombre' => 'Camila Rosario', + 'apellido' => 'Belini', + 'cuil' => '27405637077', + 'fechanac' => '1997-08-21', + 'foto_id' => 1, + ], + [ + 'dni' => '43293244', + 'nombre' => 'Luciano Luca', + 'apellido' => 'Belini', + 'cuil' => '20432932444', + 'fechanac' => '2001-04-05', + 'foto_id' => 1, + ]]; + foreach($personas as $persona){ + DB::table('personas')->insert([ + 'dni' => $persona['dni'], + 'nombre' => $persona['nombre'], + 'apellido' => $persona['apellido'], + 'cuil' => $persona['cuil'], + 'fechanac' => $persona['fechanac'], + 'foto_id' => $persona['foto_id'], + 'created_at' => now(), + 'updated_at' => now(), + ]); + } + } +} diff --git a/database/seeders/ProfesionSeeder.php b/database/seeders/ProfesionSeeder.php new file mode 100644 index 0000000..02edf5a --- /dev/null +++ b/database/seeders/ProfesionSeeder.php @@ -0,0 +1,30 @@ + 'Abogacía', 'visible_en_formulario' => true], + ['titulo' => 'Informático', 'visible_en_formulario' => false] + ]; + + foreach ($profesiones as $profesion){ + DB::table('profesiones')->insert([ + 'titulo'=>$profesion['titulo'], + 'visible_en_formulario'=>$profesion['visible_en_formulario'], + 'created_at' => now(), + 'updated_at' => now(), + ]); + } + } +} diff --git a/database/seeders/ProfesionalSeeder.php b/database/seeders/ProfesionalSeeder.php new file mode 100644 index 0000000..7b8e86d --- /dev/null +++ b/database/seeders/ProfesionalSeeder.php @@ -0,0 +1,40 @@ + 1, + 'matricula' => '5678', + 'correo' => 'CamyBelini@gmail.com', + 'dni' => '40563707', + 'persona_id' => 1, + 'estadoprofesional_id' => 1, + 'credencialprofesional_id' => 2, + 'created_at' => now(), + 'updated_at' => now(), + ], + [ + 'profesion_id' => 2, + 'matricula' => '1234', + 'correo' => 'lucianobelini2015@gmail.com', + 'dni' => '43293244', + 'persona_id' => 2, + 'estadoprofesional_id' => 1, + 'credencialprofesional_id' => 3, + 'created_at' => now(), + 'updated_at' => now(), + ]]; + + DB::table('profesionales')->insert($profesional); + } +} diff --git a/database/seeders/ServicioSeeder.php b/database/seeders/ServicioSeeder.php new file mode 100644 index 0000000..7a14eb6 --- /dev/null +++ b/database/seeders/ServicioSeeder.php @@ -0,0 +1,31 @@ + 'Consulta Jurídica', 'estado' => 'Activo', 'descripcion' => 'Consiste en una reunión con el profesional en la cual se podrá hacer una consulta sobre un tema particular'], + ['titulo' => 'Sucesión', 'estado' => 'Activo', 'descripcion' => 'El profesional asesorará al cliente en cuanto a sucesiones de bienes inmuebles de personas fallecidas'], + ['titulo' => 'Penal', 'estado' => 'Baja', 'descripcion' => 'El profesional asesorará al cliente acusado de cometer un delito de caracter penal. O en caso de que el cliente quiera acusar a otra persona por cometer un delito de caracter penal'], + ]; + + foreach($servicios as $servicio) + { + DB::table('servicios')->insert([ + 'titulo'=>$profesion['titulo'], + 'estado'=>$profesion['estado'], + 'descripcion'=>$profesion['descripcion'], + ]); + }; + + } +}