<?php

namespace App\Services\User\Contracts;

use App\Models\User;
use Illuminate\Pagination\LengthAwarePaginator;

interface UserServiceInterface
{
    public function getDashboard(User $user, string $selectedMonth): LengthAwarePaginator;

    public function getOtherActiveUsers(User $currentUser): \Illuminate\Database\Eloquent\Collection;

    public function sendThankcards(User $sender, string $receiverMsnv, int $amount): void;

    public function updatePassword(User $user, string $newPassword): void;

    public function getPersonalStats(User $user, string $selectedMonth): array;

    public function getRankingList(string $type, string $selectedMonth, User $currentUser): array;

    public function updateProfile(User $user, array $data, ?\Illuminate\Http\UploadedFile $avatarFile = null): void;
}