<?php

namespace App\Database\Seeds;

use CodeIgniter\Database\Seeder;

class DeliveryNoteTemplateSeeder extends Seeder
{
    public function run()
    {
        $table = $this->db->table('delivery_note_templates');

        $fields = [
            ['key' => 'ciudad', 'label' => 'Ciudad', 'type' => 'text', 'required' => true],
            ['key' => 'fecha_entrega', 'label' => 'Fecha de entrega', 'type' => 'date', 'required' => true],
            ['key' => 'direccion_trabajo', 'label' => 'Dirección del trabajo', 'type' => 'text', 'required' => true],
            ['key' => 'orden_compra', 'label' => 'Orden de compra / contrato', 'type' => 'text', 'required' => false],
            ['key' => 'trabajos_realizados', 'label' => 'Trabajos entregados', 'type' => 'textarea', 'required' => true],
            ['key' => 'observaciones_entrega', 'label' => 'Observaciones de entrega', 'type' => 'textarea', 'required' => false],
            ['key' => 'firma_contratista', 'label' => 'Firma contratista', 'type' => 'signature', 'required' => true],
            ['key' => 'firma_cliente', 'label' => 'Firma cliente', 'type' => 'signature', 'required' => true],
        ];

        $body = <<<'HTML'
<h3>Acta de entrega-recepción</h3>
<p>En {{ciudad}}, a {{fecha_entrega}}, se hace constar la entrega de los trabajos realizados por SIMPRO Fire correspondientes al servicio asociado al cliente {{cliente}}.</p>
<p>El servicio fue ejecutado en {{direccion_trabajo}} y queda relacionado con la orden/contrato {{orden_compra}}.</p>
<p><strong>Trabajos entregados</strong></p>
<p>{{trabajos_realizados}}</p>
<p><strong>Observaciones</strong></p>
<p>{{observaciones_entrega}}</p>
<p>Las partes manifiestan que los trabajos descritos fueron revisados y recibidos, quedando este documento como constancia formal de entrega.</p>
HTML;

        $data = [
            'code' => 'SIM14',
            'name' => 'Acta de entrega',
            'body_html' => $body,
            'fields_json' => json_encode($fields, JSON_UNESCAPED_UNICODE),
            'is_active' => 1,
            'updated_at' => date('Y-m-d H:i:s'),
        ];

        $existing = $table->where('code', 'SIM14')->get()->getRowArray();
        if ($existing === null) {
            $data['created_at'] = date('Y-m-d H:i:s');
            $table->insert($data);
            return;
        }

        $table->where('id', $existing['id'])->update($data);
    }
}
