<?php

namespace App\Livewire\Clients;

use App\Models\Clients\Client;
use App\Livewire\Traits\HasClientValidation;
use Livewire\Component;

class Create extends Component
{
    use HasClientValidation;
    public string $name = '';
    public string $shortname = '';
    public ?string $crm_id = null;
    public ?string $cif = null;
    public ?string $razon_social = null;
    public ?string $fecha_inicio_relacion = null;
    public array $contacts = [];
    public ?string $description = null;
    public ?string $jira = null;
    public bool $actived = true;
    public ?string $observation = null;

    protected function rules()
    {
        return $this->getClientValidationRules();
    }

    public function store()
    {
        $this->authorize('admin.clients.create');
        
        $validated = $this->validate();
        $validated['actived'] = $this->actived;
        $validated = $this->normalizeContacts($validated);

        Client::create($validated);

        session()->flash('success', 'Cliente creado correctamente.');

        return $this->redirect(route('clients.index'), navigate: true);
    }

    public function render()
    {
        return view('livewire.clients.create')->layout('layouts.clean');
    }
}

