API 1.0.0-rc

This commit is contained in:
2021-07-27 22:29:56 -04:00
parent c2d7729e71
commit 6172da2f95
33 changed files with 1013 additions and 0 deletions

13
api/src/Banco.php Normal file
View File

@ -0,0 +1,13 @@
<?php
namespace Contabilidad;
use ProVM\Common\Alias\Model;
/**
* @property int $id
* @property string $nombre
*/
class Banco extends Model {
public static $_table = 'bancos';
protected static $fields = ['nombre'];
}

21
api/src/Categoria.php Normal file
View File

@ -0,0 +1,21 @@
<?php
namespace Contabilidad;
use ProVM\Common\Alias\Model;
/**
* @property int $id
* @property string $nombre
*/
class Categoria extends Model {
public static $_table = 'categorias';
protected static $fields = ['nombre'];
protected $cuentas;
public function cuentas() {
if ($this->cuentas === null) {
$this->cuentas = $this->parentOf(Cuenta::class, [Model::CHILD_KEY => 'categoria_id']);
}
return $this->cuentas;
}
}

36
api/src/Cuenta.php Normal file
View File

@ -0,0 +1,36 @@
<?php
namespace Contabilidad;
use ProVM\Common\Alias\Model;
/**
* @property int $id
* @property string $nombre
* @property Categoria $categoria_id
*/
class Cuenta extends Model {
public static $_table = 'cuentas';
protected static $fields = ['nombre', 'categoria_id'];
protected $categoria;
public function categoria() {
if ($this->categoria === null) {
$this->categoria = $this->childOf(Categoria::class, [Model::SELF_KEY => 'categoria_id']);
}
return $this->categoria;
}
protected $entradas;
public function entradas() {
if ($this->entradas === null) {
$this->entradas = $this->parentOf(Entrada::class, [Model::CHILD_KEY => 'cuenta_id']);
}
return $this->entradas;
}
public function toArray(): array {
$arr = parent::toArray();
$arr['categoria'] = $this->categoria()->toArray();
return $arr;
}
}

38
api/src/Entrada.php Normal file
View File

@ -0,0 +1,38 @@
<?php
namespace Contabilidad;
use Carbon\Carbon;
use ProVM\Common\Alias\Model;
/**
* @property int $id
* @property \DateTime $fecha
* @property Fuente $fuente_id
* @property Cuenta $cuenta_id
* @property double $valor
*/
class Entrada extends Model {
public static $_table = 'entradas';
protected static $fields = ['fecha', 'fuente_id', 'cuenta_id', 'value'];
protected $fuente;
public function fuente() {
if ($this->fuente === null) {
$this->fuente = $this->childOf(Fuente::class, [Model::SELF_KEY => 'fuente_id']);
}
return $this->fuente;
}
protected $cuenta;
public function cuenta() {
if ($this->cuenta === null) {
$this->cuenta = $this->childOf(Cuente::class, [Model::SELF_KEY => 'cuenta_id']);
}
return $this->cuenta;
}
public function fecha(\DateTime $fecha = null) {
if ($fecha === null) {
return Carbon::parse($this->fecha);
}
$this->fecha = $fecha->format('Y-m-d');
}
}

44
api/src/Fuente.php Normal file
View File

@ -0,0 +1,44 @@
<?php
namespace Contabilidad;
use ProVM\Common\Alias\Model;
/**
* @property int $id
* @property TipoFuente $tipo_id
* @property Banco $banco_id
*/
class Fuente extends Model {
public static $_table = 'fuentes';
protected static $fields = ['tipo_id', 'banco_id'];
protected $tipo;
public function tipo() {
if ($this->tipo === null) {
$this->tipo = $this->childOf(TipoFuente::class, [Model::SELF_KEY => 'tipo_id']);
}
return $this->tipo;
}
protected $banco;
public function banco() {
if ($this->banco === null) {
$this->banco = $this->childOf(Banco::class, [Model::SELF_KEY => 'banco_id']);
}
return $this->banco;
}
protected $entradas;
public function entradas() {
if ($this->entradas === null) {
$this->entradas = $this->parentOf(Entrada::class, [Model::CHILD_KEY => 'fuente_id']);
}
return $this->entradas;
}
public function toArray(): array {
$arr = parent::toArray();
$arr['tipo'] = $this->tipo()->toArray();
$arr['banco'] = $this->banco()->toArray();
return $arr;
}
}

21
api/src/TipoFuente.php Normal file
View File

@ -0,0 +1,21 @@
<?php
namespace Contabilidad;
use ProVM\Common\Alias\Model;
/**
* @property int $id
* @property string $descripcion
*/
class TipoFuente extends Model {
public static $_table = 'tipos_fuente';
protected static $fields = ['descripcion'];
protected $fuentes;
public function fuentes() {
if ($this->fuentes === null) {
$this->fuentes = $this->parentOf(Fuente::class, [Model::CHILD_KEY => 'tipo_id']);
}
return $this->fuentes;
}
}