Spaces:
Sleeping
Sleeping
File size: 1,188 Bytes
05c5ed5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | import type { User } from "./user";
export interface AdminUsersQuery {
searchValue?: string;
searchField?: "name" | "email";
searchOperator?: "contains" | "starts_with" | "ends_with";
limit?: number;
offset?: number;
sortBy?: string;
sortDirection?: "asc" | "desc";
filterField?: string;
filterValue?: string | number | boolean;
filterOperator?: "lt" | "eq" | "ne" | "lte" | "gt" | "gte" | "contains";
}
// Better Auth's UserWithRole type - minimal definition for list view
export type AdminUserListItem = Omit<
User,
| "password"
| "preferences"
| "image"
| "role"
| "banned"
| "banReason"
| "banExpires"
> & {
image?: string | null;
role?: string | null;
banned?: boolean | null;
banReason?: string | null;
banExpires?: Date | null;
};
export interface AdminUsersPaginated {
users: AdminUserListItem[];
total: number;
limit: number;
offset: number;
}
export interface AdminUpdateUserDetailsData {
userId: string;
name?: string;
email?: string;
image?: string;
}
// Admin only repository methods
export type AdminRepository = {
// User queries
getUsers: (query?: AdminUsersQuery) => Promise<AdminUsersPaginated>;
};
|