add more data

This commit is contained in:
Nông Đức Huy
2026-08-13 23:20:23 +07:00
parent 8fd23d162f
commit 57f44796ce
20 changed files with 1436 additions and 18 deletions
+23 -1
View File
@@ -1,4 +1,11 @@
import type { OffsetPaginated, PermissionGroup, RoleDetail, UserSummary } from '@sport/types';
import type {
AdminCustomer,
AdminCustomerDetail,
OffsetPaginated,
PermissionGroup,
RoleDetail,
UserSummary,
} from '@sport/types';
import type { HttpClient } from '../http-client';
@@ -44,6 +51,13 @@ export interface AdminResource {
updateUser(id: string, payload: UpdateUserPayload): Promise<UserSummary>;
resetUserPassword(id: string, password: string): Promise<{ ok: true }>;
listCustomers(params?: {
page?: number;
perPage?: number;
q?: string;
}): Promise<OffsetPaginated<AdminCustomer>>;
getCustomer(id: string): Promise<AdminCustomerDetail>;
listRoles(): Promise<RoleDetail[]>;
getRole(id: string): Promise<RoleDetail>;
listPermissions(): Promise<PermissionGroup[]>;
@@ -73,6 +87,14 @@ export function createAdminResource(http: HttpClient): AdminResource {
uncached,
),
listCustomers: (params = {}) =>
http.get<OffsetPaginated<AdminCustomer>>('/admin/customers', {
...uncached,
query: { ...params },
}),
getCustomer: (id) =>
http.get<AdminCustomerDetail>(`/admin/customers/${encodeURIComponent(id)}`, uncached),
listRoles: () => http.get<RoleDetail[]>('/admin/roles', uncached),
getRole: (id) => http.get<RoleDetail>(`/admin/roles/${encodeURIComponent(id)}`, uncached),
listPermissions: () => http.get<PermissionGroup[]>('/admin/roles/permissions', uncached),
@@ -56,6 +56,8 @@ export interface CatalogAdminResource {
images: { mediaId: string; position: number; optionValueId?: string | null }[],
): Promise<AdminProductDetail>;
setStatus(id: string, status: 'DRAFT' | 'ACTIVE' | 'ARCHIVED'): Promise<AdminProductDetail>;
/** Soft delete — the row survives for order history, see the service. */
deleteProduct(id: string): Promise<void>;
listMedia(params?: {
page?: number;
@@ -112,6 +114,7 @@ export function createCatalogAdminResource(http: HttpClient): CatalogAdminResour
{ status },
uncached,
),
deleteProduct: (id) => http.delete<void>(`/admin/products/${encodeURIComponent(id)}`, uncached),
listMedia: (params = {}) =>
http.get<OffsetPaginated<MediaAssetSummary>>('/admin/media', {