<?php

namespace App\Entities\Produccion;

use App\Models\Usuarios\UserModel;
use CodeIgniter\Entity\Entity;
use Exception;

class OrdenTrabajoDateEntity extends Entity
{
    protected $attributes = [
        "orden_trabajo_id" => null,
        "fecha_entrada_at" => null,
        //IMPRESION
        "interior_bn_at" => null,
        "interior_color_at" => null,
        "cubierta_at" => null,
        //ACABADO
        "plastificado_at" => null,
        "encuadernacion_at" => null,
        "corte_at" => null,
        "preparacion_interiores_at" => null,
        "entrada_manipulado_at" => null,
        "cosido_at" => null,
        "solapa_at" => null,
        "grapado_at" => null,
        "retractilado_at"=> null,
        "retractilado5_at"=> null,
        "prototipo_at"=> null,
        "marcapaginas_at"=> null,
        "espiral_at"=> null,
        //FERRO
        "pendiente_ferro_at" => null,
        "ferro_en_cliente_at" => null,
        "ferro_ok_at" => null,
        //ENVIO
        "embalaje_at" => null,
        "envio_at" => null,
        //PREIMPRESION
        "pre_formato_at" => null,
        "pre_lomo_at" => null,
        "pre_solapa_at" => null,
        "pre_codbarras_at" => null,
        "pre_imposicion_at" => null,

    ];
    protected $datamap = [];
    protected $dates   = [
        'created_at',
        'updated_at',
        'deleted_at',

    ];
    protected $casts   = [];

    public function sinImprimirStatus(): bool
    {
        return !(
            $this->attributes['interior_bn_at'] == null
            && $this->attributes['interior_color_at'] == null
            && $this->attributes['cubierta_at'] == null
        );
    }
    public function impresionInteriorStatus():bool
    {
        return $this->attributes['interior_bn_at']|| $this->attributes['interior_color_at'];
    }
    public function impresionCubiertaStatus():bool
    {
        return $this->attributes['cubierta_at'] != null;
    }
    public function plastificadoStatus():bool
    {
        return $this->attributes['plastificado_at'] != null;
    }
    public function encuadernadoStatus():bool
    {
        return $this->attributes['encuadernacion_at'] != null;
    }
    public function preparacionInterioresStatus():bool
    {
        return $this->attributes['preparacion_interiores_at'] != null;
    }
    public function corteStatus():bool
    {
        return $this->attributes['corte_at'] != null;
    }
    public function cosidoStatus():bool
    {
        return $this->attributes['cosido_at'] != null;
    }
    public function grapadoStatus():bool
    {
        return $this->attributes['grapado_at'] != null;
    }
    public function solapaStatus():bool
    {
        return $this->attributes['solapa_at'] != null;
    }
}
