import type { Data } from '@strapi/types'; export interface Entity { id: Data.ID; createdAt: string; updatedAt: string; } export interface Permission extends Entity { action: string; actionParameters: object; subject?: string | null; properties: { fields?: string[]; locales?: string[]; [key: string]: any; }; conditions: string[]; } export interface AdminUser extends Entity { firstname?: string; lastname?: string; username?: string; email?: string; password?: string; resetPasswordToken?: string | null; registrationToken?: string | null; isActive: boolean; roles: AdminRole[]; blocked: boolean; preferedLanguage?: string; } export type AdminUserCreationPayload = Omit & { roles: Data.ID[]; }; export type AdminUserUpdatePayload = Omit & { roles: Data.ID[]; }; export type SanitizedAdminUser = Omit & { roles: SanitizedAdminRole[]; }; export interface AdminRole extends Entity { name: string; code: string; description?: string; users: AdminUser[]; permissions: Permission[]; } export type SanitizedAdminRole = Omit; export interface Pagination { page: number; pageSize: number; pageCount: number; total: number; }