<?php

namespace App\Repositories;

use App\Models\Checkin;
use Carbon\Carbon;

class CheckinRepository
{
    public function checkinRecente(int $userId, int $pontoId): ?Checkin
    {
        return Checkin::where('user_id', $userId)
            ->where('ponto_id', $pontoId)
            ->where('data_hora', '>=', Carbon::now()->subHours(24))
            ->first();
    }

    public function criar(array $dados): Checkin
    {
        return Checkin::create($dados);
    }

    public function meusPaginado(int $userId, int $porPagina = 20)
    {
        return Checkin::where('user_id', $userId)
            ->with('ponto')
            ->orderByDesc('data_hora')
            ->paginate($porPagina);
    }
}
