Files
My-KOPKB/be/Modules/Dashboard/Repositories/Contracts/KJCDashboardRepositoryInterface.php
T
ISMAIL MASSERAN 94ecbe5887 first init
2026-06-08 11:37:14 +08:00

58 lines
1.7 KiB
PHP

<?php
namespace Modules\Dashboard\Repositories\Contracts;
interface KJCDashboardRepositoryInterface
{
/**
* Get total KJC asset entitlement
*/
public function getTotalEntitlement(array $filters = [], $user = null): int;
/**
* Get total KJC asset holdings
*/
public function getTotalHoldings(array $filters = [], $user = null): int;
/**
* Get KJC asset holdings by status
*/
public function getHoldingsByStatus(array $filters = [], $user = null): array;
/**
* Get KJC asset holdings with pagination
*/
public function getHoldingsPaginated(array $filters = [], int $perPage = 20, $user = null): array;
/**
* Get KJC asset entitlements with pagination
*/
public function getEntitlementsPaginated(array $filters = [], int $perPage = 20, $user = null): array;
/**
* Get KJC asset holdings by specific status
*/
public function getHoldingsBySpecificStatus(string $status, array $filters = [], $user = null): array;
/**
* Get KJC asset holdings grouped by unit
*/
public function getHoldingsByUnit(array $filters = [], $user = null): array;
/**
* Get KJC asset holdings monthly trends
*/
public function getMonthlyTrends(array $filters = [], $user = null): array;
/**
* Get KJC historical metrics (KEUPAYAAN, KESIAGAAN, SERVISIBILITI) by month
*/
public function getHistoricalMetricsByMonth(array $filters = []): array;
/**
* Get KJC asset details by status (paginated).
* When status is '' or 'null', returns assets where status column is NULL (not yet assigned).
*/
public function getAssetDetailsByStatus(string $status, array $filters = [], $user = null): array;
}