<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    public function up(): void
    {
        Schema::create('demandas', function (Blueprint $table) {
            $table->id();
            $table->string('titulo');
            $table->string('cliente');
            $table->string('empresa_cnpj')->nullable();
            $table->enum('setor', ['Fiscal', 'Contábil', 'DP', 'Financeiro', 'Legalização'])->default('Contábil');
            $table->string('responsavel')->nullable();
            $table->enum('tipo', ['Abertura', 'Alteração', 'Fechamento', 'Obrigação', 'Documento', 'Contrato', 'Suporte interno'])->default('Suporte interno');
            $table->enum('prioridade', ['Baixa', 'Média', 'Alta', 'Crítica'])->default('Média');
            $table->unsignedTinyInteger('prioridade_ordem')->default(2);
            $table->enum('status', ['Novo', 'Em análise', 'Em execução', 'Aguardando cliente', 'Aguardando interno', 'Revisão/Supervisão', 'Concluído', 'Cancelado'])->default('Novo');
            $table->text('descricao')->nullable();
            $table->text('observacoes_internas')->nullable();
            $table->timestamp('sla_vencimento')->nullable();
            $table->timestamp('concluido_em')->nullable();
            $table->timestamps();

            $table->index('status');
            $table->index('setor');
            $table->index('sla_vencimento');
            $table->index('prioridade_ordem');
        });
    }

    public function down(): void
    {
        Schema::dropIfExists('demandas');
    }
};
