<?php

namespace App\Database\Migrations;

use CodeIgniter\Database\Migration;
use CodeIgniter\Database\RawSql;

class OrdenTrabajoDatesTable extends Migration
{

    protected array $COLUMNS = [
        'id' =>  [
            'type' => 'INT',
            'unsigned' => true,
            'auto_increment' => true,
        ],
        "orden_trabajo_id" => [
            "type" => "INT",
            "unsigned" => true,
        ],
        "fecha_entrada_at" => [
            "type" => "DATE",
            "null" => true,
        ],
        "fecha_entrega_at" => [
            "type" => "DATE",
            "null" => true,
        ],
        "fecha_entrega_change_at" => [
            "type" => "DATE",
            "null" => true,
        ],

        "fecha_entrega_real_at" => [
            "type" => "DATE",
            "null" => true,
        ],

        "fecha_impresion_at" => [
            "type" => "DATE",
            "null" => true,
        ],
        "fecha_encuadernado_at" => [
            "type" => "DATE",
            "null" => true,
        ],
        "fecha_entrega_externo" => [
            "type" => "DATE",
            "null" => true,
        ],

        "pendiente_ferro_at" => [
            "type" => "DATE",
            "null" => true,
        ],
        "ferro_en_cliente_at" => [
            "type" => "DATE",
            "null" => true,
        ],
        "ferro_ok_at" => [
            "type" => "DATE",
            "null" => true,
        ],
        "interior_bn_at" => [
            "type" => "DATE",
            "null" => true,
        ],
        "interior_color_at" => [
            "type" => "DATE",
            "null" => true,
        ],
        "preparacion_interiores_at" => [
            "type" => "DATE",
            "null" => true,
        ],
        "cubierta_at" => [
            "type" => "DATE",
            "null" => true,
        ],
        "plastificado_at" => [
            "type" => "DATE",
            "null" => true,
        ],
        "encuadernacion_at" => [
            "type" => "DATE",
            "null" => true,
        ],
        "corte_at" => [
            "type" => "DATE",
            "null" => true,
        ],
        "embalaje_at" => [
            "type" => "DATE",
            "null" => true,
        ],
        "envio_at" => [
            "type" => "DATE",
            "null" => true,
        ],
        "entrada_manipulado_at" => [
            "type" => "DATE",
            "null" => true,
        ],


        "ferro_disponible_hecho_at" => [
            "type" => "DATE",
            "null" => true,
        ],

        "ferro_disponible_ok_at" => [
            "type" => "DATE",
            "null" => true,
        ],

        "ferro_entregado_at" => [
            "type" => "DATE",
            "null" => true,
        ],
        "pre_formato_at" => [
            "type" => "DATE",
            "null" => true,
        ],

        "pre_lomo_at" => [
            "type" => "DATE",
            "null" => true,
        ],

        "pre_solapa_at" => [
            "type" => "DATE",
            "null" => true,
        ],

        "pre_codbarras_at" => [
            "type" => "DATE",
            "null" => true,
        ],

        "pre_imposicion_at" => [
            "type" => "DATE",
            "null" => true,
        ],
    ];
    public function up()
    {
        $this->forge->dropTable('orden_trabajo_dates',true);
        $currenttime = new RawSql("CURRENT_TIMESTAMP");
        $this->forge->addField($this->COLUMNS);
        $this->forge->addField([
            "created_at" => [
                "type" => "TIMESTAMP",
                "default" => $currenttime,
            ],
            "updated_at" => [
                "type" => "TIMESTAMP",
                "null" => true,
            ],
            "deleted_at" => [
                "type" => "TIMESTAMP",
                "null" => true,
            ],
        ]);
        $this->forge->addPrimaryKey('id');
        $this->forge->addForeignKey("orden_trabajo_id", "ordenes_trabajo","id");
        $this->forge->createTable("orden_trabajo_dates");

    }

    public function down()
    {
        $this->forge->dropTable('orden_trabajo_dates');
    }
}
