Se comenzó a programar seeders y modelos (las migraciones ya están terminadas)

This commit is contained in:
Lucho
2026-03-10 16:41:34 -03:00
parent 55fc8aa0a8
commit 6c9d79115b
19 changed files with 651 additions and 0 deletions
@@ -0,0 +1,10 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ServicioController extends Controller
{
//
}
+10
View File
@@ -0,0 +1,10 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Factories\HasFactory;
class LogSeguridad extends Model
{
}
+42
View File
@@ -0,0 +1,42 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Factories\HasFactory;
class Persona extends Model
{
use HasFactory;
protected $table = 'personas';
protected $fillable = [
'dni',
'nombre',
'apellido',
'cuil',
'fechanac',
'foto_id',
];
public function Foto()
{
return $this->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');
}
}
+23
View File
@@ -0,0 +1,23 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Factories\HasFactory;
class Profesion extends Model
{
use HasFactory;
protected $table = 'profesiones';
protected $fillable =[
'titulo',
'visible_en_formulario',
];
public function profesionales()
{
return $this->hasMany(Profesional::class, 'profesion_id');
}
}
+91
View File
@@ -0,0 +1,91 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Factories\HasFactory;
class Profesional extends Model
{
use HasFactory;
protected $fillable = [
'matricula',
'correo',
'credencialprofesional_id',
'estadoprofesional_id',
'persona_id',
'baja_id',
'profesion_id',
];
//Pertenece a
public function profesion()
{
return $this->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();
}
}
+50
View File
@@ -0,0 +1,50 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Factories\HasFactory;
class Servicio extends Model
{
use HasFactory;
protected $fillable = [
'titulo',
'estado',
'descripcion',
'profesion_id',
'foto_id',
];
//pertenece a
public function contenido()
{
return $this->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');
}
}
+62
View File
@@ -0,0 +1,62 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class AccionLogSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
$acciones = [
['descripcion' => '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(),
]);
}
}
}
+24
View File
@@ -0,0 +1,24 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\BD;
class AdministradorSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
$administrador = [
'persona_id' => 1,
'dni' => '40563707',
'correo' => 'CamyBelini@gmail.com',
'credencialprofesional_id' => 1,
];
BD::table('administradores')->insert($administrador);
}
}
+22
View File
@@ -0,0 +1,22 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facade\DB;
class ContenidoWebSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
$contenido = [
'quienessomos' => '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');
}
}
@@ -0,0 +1,40 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class CredencialProfesionalSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
$credenciales = [[
'usuario' => '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(),
]);
};
}
}
+13
View File
@@ -21,5 +21,18 @@ class DatabaseSeeder extends Seeder
'name' => 'Test User', 'name' => 'Test User',
'email' => 'test@example.com', '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,
]);
} }
} }
@@ -0,0 +1,28 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class EstadoProfesionalSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
$estados = [
['descripcion' => 'Activo'],
['descripcion' => 'Baja'],
];
foreach ($estados as $estado){
DB::table('estadosprofesionales')->insert([
'descripcion'=>$estado['descripcion'],
'created_at' => now(),
'updated_at' => now(),
]);
}
}
}
+32
View File
@@ -0,0 +1,32 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class EstadoTurnoSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
$estados = [
['descripcion' => '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(),
]);
}
}
}
+30
View File
@@ -0,0 +1,30 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class FotoSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
$fotos = [
['extension' => '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(),
]);
}
}
+29
View File
@@ -0,0 +1,29 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class ModalidadSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
$modalidades = [
['descripcion' => 'Presencial'],
['descripcion' => 'Virtual'],
];
foreach ($modalidades as $modalidad){
DB::table('modalidades')->insert([
'descripcion'=>$modalidad['descripcion'],
'created_at' => now(),
'updated_at' => now(),
]);
}
}
}
+44
View File
@@ -0,0 +1,44 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class PersonaSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
$personas = [[
'dni' => '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(),
]);
}
}
}
+30
View File
@@ -0,0 +1,30 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class ProfesionSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
$profesiones = [
['titulo' => '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(),
]);
}
}
}
+40
View File
@@ -0,0 +1,40 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class ProfesionalSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
$profesional = [[
'profesion_id' => 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);
}
}
+31
View File
@@ -0,0 +1,31 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class ServicioSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
$servicios = [
['titulo' => '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'],
]);
};
}
}