<?php

namespace App\Domains\Clientes\Services;

use App\Domains\Clientes\Repositories\ClienteRepository;
use Illuminate\Validation\ValidationException;

class ClienteService
{
    protected $repository;

    public function __construct(ClienteRepository $repository)
    {
        $this->repository = $repository;
    }

    public function criarCliente(array $data)
    {
        // Verificar se CPF já existe
        $clienteExistente = $this->repository->findByCpf($data['cpf']);
        if ($clienteExistente) {
            throw ValidationException::withMessages([
                'cpf' => ['CPF já cadastrado']
            ]);
        }

        return $this->repository->create($data);
    }

    public function atualizarCliente(int $id, array $data)
    {
        return $this->repository->update($id, $data);
    }

    public function buscarCliente(int $id)
    {
        return $this->repository->find($id);
    }

    public function deletarCliente(int $id)
    {
        return $this->repository->delete($id);
    }
} 