<?php

namespace App\Domains\Clientes\Repositories;

use App\Domains\Clientes\Models\Cliente;
use Illuminate\Database\Eloquent\ModelNotFoundException;

class ClienteRepository
{
    protected $model;

    public function __construct(Cliente $model)
    {
        $this->model = $model;
    }

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

    public function findByCpf(string $cpf)
    {
        return $this->model->where('cpf', $cpf)->first();
    }

    public function create(array $data)
    {
        try {
            return $this->model->create($data);
        } catch (\Exception $e) {
            throw new \Exception('Erro ao criar cliente: ' . $e->getMessage());
        }
    }

    public function update(int $id, array $data)
    {
        $cliente = $this->find($id);
        if ($cliente) {
            $cliente->update($data);
        }
        return $cliente;
    }

    public function delete(int $id)
    {
        $cliente = $this->find($id);
        if ($cliente) {
            $cliente->delete();
        }
        return $cliente;
    }
} 