Modelo de base de datos en lumen

This commit is contained in:
2021-04-20 23:38:54 -04:00
parent 70571568ad
commit 6e4076cf15
29 changed files with 530 additions and 243 deletions

View File

@@ -0,0 +1,17 @@
<?php
namespace App\Models;
use App\Traits\UuidPrimaryKey;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Administrador extends Model {
use UuidPrimaryKey, SoftDeletes;
protected $table = 'administradores';
public function usuario() {
return $this->belongsTo(Usuario::class);
}
}

View File

@@ -0,0 +1,21 @@
<?php
namespace App\Models;
use App\Traits\UuidPrimaryKey;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class BoletaElectronica extends Model {
use UuidPrimaryKey, SoftDeletes;
protected $table = 'boletas_electronicas';
public function venta() {
return $this->belongsTo(Venta::class);
}
public function restaurante() {
return $this->belongsTo(Restaurante::class);
}
}

View File

@@ -0,0 +1,21 @@
<?php
namespace App\Models;
use App\Traits\UuidPrimaryKey;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class BoletaExenta extends Model {
use UuidPrimaryKey, SoftDeletes;
protected $table = 'boletas_exentas';
public function venta() {
return $this->belongsTo(Venta::class);
}
public function restaurante() {
return $this->belongsTo(Restaurante::class);
}
}

View File

@@ -0,0 +1,25 @@
<?php
namespace App\Models;
use App\Traits\UuidPrimaryKey;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class CanalVenta extends Model {
use UuidPrimaryKey, SoftDeletes;
protected $table = 'canales_venta';
public function tipoCanal() {
return $this->belongsTo(TipoCanal::class);
}
public function sector() {
return $this->belongsTo(Sector::class);
}
public function restaurante() {
return $this->belongsTo(Restaurante::class);
}
}

View File

@@ -0,0 +1,17 @@
<?php
namespace App\Models;
use App\Traits\UuidPrimaryKey;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Categoria extends Model {
use UuidPrimaryKey, SoftDeletes;
protected $table = 'categorias';
public function restaurante() {
return $this->belongsTo(Restaurante::class);
}
}

View File

@@ -0,0 +1,29 @@
<?php
namespace App\Models;
use App\Traits\UuidPrimaryKey;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Compra extends Model {
use UuidPrimaryKey, SoftDeletes;
protected $table = 'compras';
public function compraIngredientes() {
return $this->hasMany(CompraIngrediente::class);
}
public function facturas() {
return $this->hasMany(Factura::class);
}
public function restaurante() {
return $this->belongsTo(Restaurante::class);
}
public function proveedor() {
return $this->belongsTo(Proveedor::class);
}
}

View File

@@ -0,0 +1,21 @@
<?php
namespace App\Models;
use App\Traits\UuidPrimaryKey;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class CompraIngrediente extends Model {
use UuidPrimaryKey, SoftDeletes;
protected $table = 'compra_ingredientes';
public function ingrediente() {
return $this->belongsTo(Ingrediente::class);
}
public function compra() {
return $this->belongsTo(Compra::class);
}
}

View File

@@ -0,0 +1,13 @@
<?php
namespace App\Models;
use App\Traits\UuidPrimaryKey;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class EstadoProduccion extends Model {
use UuidPrimaryKey, SoftDeletes;
protected $table = 'estados_produccion';
}

View File

@@ -0,0 +1,17 @@
<?php
namespace App\Models;
use App\Traits\UuidPrimaryKey;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Factura extends Model {
use UuidPrimaryKey, SoftDeletes;
protected $table = 'facturas';
public function compra() {
return $this->belongsTo(Compra::class);
}
}

View File

@@ -0,0 +1,22 @@
<?php
namespace App\Models;
use App\Traits\UuidPrimaryKey;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Ingrediente extends Model {
use UuidPrimaryKey, SoftDeletes;
protected $table = 'ingredientes';
public function recetas() {
return $this->hasMany(Receta::class, 'ingrediente_id');
}
public function restaurante() {
return $this->belongsTo(Restaurante::class);
}
}

View File

@@ -0,0 +1,17 @@
<?php
namespace App\Models;
use App\Traits\UuidPrimaryKey;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Mesero extends Model {
use UuidPrimaryKey, SoftDeletes;
protected $table = 'meseros';
public function usuario() {
return $this->belongsTo(Usuario::class);
}
}

View File

@@ -0,0 +1,29 @@
<?php
namespace App\Models;
use App\Traits\UuidPrimaryKey;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Producto extends Model {
use UuidPrimaryKey, SoftDeletes;
protected $table = 'productos';
public function recetas() {
return $this->hasMany(Receta::class, 'producto_id');
}
public function categoria() {
return $this->belongsTo(Categoria::class);
}
public function zonaProduccion() {
return $this->belongsTo(ZonaProduccion::class);
}
public function restaurante() {
return $this->belongsTo(Restaurante::class);
}
}

View File

@@ -0,0 +1,21 @@
<?php
namespace App\Models;
use App\Traits\UuidPrimaryKey;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Productor extends Model {
use UuidPrimaryKey, SoftDeletes;
protected $table = 'productores';
public function usuario() {
return $this->belongsTo(Usuario::class);
}
public function zonaProduccion() {
return $this->belongsTo(ZonaProduccion::class);
}
}

View File

@@ -0,0 +1,17 @@
<?php
namespace App\Models;
use App\Traits\UuidPrimaryKey;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Proveedor extends Model {
use UuidPrimaryKey, SoftDeletes;
protected $table = 'proveedores';
public function restaurante() {
return $this->belongsTo(Restaurante::class);
}
}

View File

@@ -0,0 +1,17 @@
<?php
namespace App\Models;
use App\Traits\UuidPrimaryKey;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Recaudador extends Model {
use UuidPrimaryKey, SoftDeletes;
protected $table = 'recaudadores';
public function usuario() {
return $this->belongsTo(Usuario::class);
}
}

View File

@@ -0,0 +1,20 @@
<?php
namespace App\Models;
use App\Traits\UuidPrimaryKey;
use Illuminate\Database\Eloquent\Model;
class Receta extends Model {
use UuidPrimaryKey;
protected $table = 'recetas';
public function ingrediente() {
return $this->belongsTo(Ingrediente::class);
}
public function producto() {
return $this->belongsTo(Producto::class);
}
}

View File

@@ -0,0 +1,17 @@
<?php
namespace App\Models;
use App\Traits\UuidPrimaryKey;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Restaurante extends Model {
use UuidPrimaryKey, SoftDeletes;
protected $table = 'restaurantes';
public function usuarios() {
return $this->belongsToMany(Usuario::class, 'usuarios_restaurantes', 'restaurante_id', 'usuario_id');
}
}

View File

@@ -0,0 +1,17 @@
<?php
namespace App\Models;
use App\Traits\UuidPrimaryKey;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Sector extends Model {
use UuidPrimaryKey, SoftDeletes;
protected $table = 'sectores';
public function restaurante() {
return $this->belongsTo(Restaurante::class);
}
}

View File

@@ -0,0 +1,13 @@
<?php
namespace App\Models;
use App\Traits\UuidPrimaryKey;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class TipoCanal extends Model {
use UuidPrimaryKey, SoftDeletes;
protected $table = 'tipos_canal';
}

View File

@@ -1,33 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Auth\Authenticatable;
use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Laravel\Lumen\Auth\Authorizable;
class User extends Model implements AuthenticatableContract, AuthorizableContract
{
use Authenticatable, Authorizable, HasFactory;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email',
];
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = [
'password',
];
}

View File

@@ -0,0 +1,17 @@
<?php
namespace App\Models;
use App\Traits\UuidPrimaryKey;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Usuario extends Model {
use UuidPrimaryKey, SoftDeletes;
protected $table = 'usuarios';
public function restaurantes() {
return $this->belongsToMany(Restaurante::class, 'usuarios_restaurantes', 'usuario_id', 'restaurante_id');
}
}

View File

@@ -0,0 +1,29 @@
<?php
namespace App\Models;
use App\Traits\UuidPrimaryKey;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Venta extends Model {
use UuidPrimaryKey, SoftDeletes;
protected $table = 'ventas';
public function mesero() {
return $this->belongsTo(Mesero::class);
}
public function canal() {
return $this->belongsTo(CanalVenta::class);
}
public function restaurante() {
return $this->belongsTo(Restaurante::class);
}
public function productos() {
return $this->hasMany(VentaProducto::class);
}
}

View File

@@ -0,0 +1,25 @@
<?php
namespace App\Models;
use App\Traits\UuidPrimaryKey;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class VentaProducto extends Model {
use UuidPrimaryKey, SoftDeletes;
protected $table = 'venta_productos';
public function venta() {
return $this->belongsTo(Venta::class);
}
public function producto() {
return $this->belongsTo(Producto::class);
}
public function estado() {
return $this->belongsTo(EstadoProduccion::class);
}
}

View File

@@ -0,0 +1,17 @@
<?php
namespace App\Models;
use App\Traits\UuidPrimaryKey;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class ZonaProduccion extends Model {
use UuidPrimaryKey, SoftDeletes;
protected $table = 'zonas_produccion';
public function restaurante() {
return $this->belongsTo(Restaurante::class);
}
}

View File

@@ -0,0 +1,16 @@
<?php
namespace App\Traits;
trait UuidPrimaryKey {
public function getKeyType()
{
return 'string';
}
public function getIncrementing()
{
return false;
}
}

View File

@@ -23,9 +23,9 @@ $app = new Laravel\Lumen\Application(
dirname(__DIR__)
);
// $app->withFacades();
$app->withFacades();
// $app->withEloquent();
$app->withEloquent();
/*
|--------------------------------------------------------------------------
@@ -76,9 +76,9 @@ $app->configure('app');
// App\Http\Middleware\ExampleMiddleware::class
// ]);
$app->routeMiddleware([
'auth' => App\Http\Middleware\Auth0Middleware::class,
]);
$app->routeMiddleware([
'auth' => App\Http\Middleware\Auth0Middleware::class,
]);
/*
|--------------------------------------------------------------------------

View File

@@ -1,5 +1,6 @@
<?php
/** @var \Laravel\Lumen\Routing\Router $router */
/*
@@ -16,8 +17,8 @@
$router->get('/', function () use ($router) {
return 'Public View';
});
$router->group(['prefix' => 'api/v1', 'middleware' => 'auth'], function () use ($router){
$router->group(['prefix' => 'api/v1', 'middleware' => 'auth'], function () use ($router) {
$router->get('/', function () use ($router) {
return 'Protected View';
return \App\Models\Venta::with('productos')->get();
});
});