v7.0.0-beta.1 release

This commit is contained in:
HeuJung
2026-04-01 10:30:52 +09:00
commit 6595fd0eb5
3967 changed files with 1875383 additions and 0 deletions
@@ -0,0 +1,96 @@
<?php
namespace App\Contracts\Repositories;
use App\Models\User;
use Illuminate\Contracts\Pagination\LengthAwarePaginator;
use Illuminate\Database\Eloquent\Collection;
interface UserRepositoryInterface
{
/**
* 이메일로 사용자를 찾습니다.
*
* @param string $email 찾을 사용자의 이메일
* @return User|null 찾은 사용자 모델 또는 null
*/
public function findByEmail(string $email): ?User;
/**
* 새로운 사용자를 생성합니다.
*
* @param array $data 사용자 생성 데이터
* @return User 생성된 사용자 모델
*/
public function create(array $data): User;
/**
* 기존 사용자를 업데이트합니다.
*
* @param User $user 업데이트할 사용자 모델
* @param array $data 업데이트할 데이터
* @return bool 업데이트 성공 여부
*/
public function update(User $user, array $data): bool;
/**
* 사용자를 삭제합니다.
*
* @param User $user 삭제할 사용자 모델
* @return bool 삭제 성공 여부
*/
public function delete(User $user): bool;
/**
* 모든 사용자를 조회합니다.
*
* @return Collection 사용자 컬렉션
*/
public function getAll(): Collection;
/**
* ID로 사용자를 찾습니다.
*
* @param int $id 사용자 ID
* @return User|null 찾은 사용자 모델 또는 null
*/
public function findById(int $id): ?User;
/**
* 필터링 및 페이지네이션이 적용된 사용자 목록을 조회합니다.
*
* @param array $filters 필터 조건 배열
* @return LengthAwarePaginator 페이지네이션된 사용자 목록
*/
public function getPaginatedUsers(array $filters = []): LengthAwarePaginator;
/**
* 사용자 관련 통계 정보를 조회합니다.
*
* @return array 사용자 통계 데이터 배열
*/
public function getStatistics(): array;
/**
* 키워드로 사용자를 검색합니다. (이름, 닉네임, 이메일)
*
* @param string $keyword 검색할 키워드
* @return Collection 검색된 사용자 컬렉션
*/
public function searchByKeyword(string $keyword): Collection;
/**
* 최근 등록된 사용자들을 조회합니다.
*
* @param int $limit 조회할 사용자 수 (기본값: 10)
* @return Collection 최근 사용자 컬렉션
*/
public function getRecentUsers(int $limit = 10): Collection;
/**
* 언어별 사용자 수를 조회합니다.
*
* @return array 언어별 사용자 수 배열
*/
public function getUsersByLanguage(): array;
}