107 lines
1.9 KiB
TypeScript
107 lines
1.9 KiB
TypeScript
import { Permission } from "./auth";
|
|
|
|
export * from "./auth";
|
|
|
|
// Permission Management Types
|
|
export interface CreatePermissionRequest {
|
|
title: string;
|
|
description: string;
|
|
}
|
|
|
|
export interface UpdatePermissionRequest {
|
|
id: number;
|
|
title: string;
|
|
description: string;
|
|
}
|
|
|
|
export interface CreatePermissionResponse {
|
|
permission: Permission;
|
|
}
|
|
|
|
export interface UpdatePermissionResponse {
|
|
permission: Permission;
|
|
}
|
|
|
|
export interface GetPermissionByIDResponse {
|
|
permission: Permission;
|
|
}
|
|
|
|
export interface GetAllPermissionsResponse {
|
|
permissions: Permission[];
|
|
}
|
|
|
|
export interface DeletePermissionResponse {
|
|
message: string;
|
|
}
|
|
|
|
// Re-export Permission from auth for convenience
|
|
export type { Permission } from "./auth";
|
|
|
|
export interface User {
|
|
id: string;
|
|
name: string;
|
|
email: string;
|
|
role: string;
|
|
permissions: number[];
|
|
avatar?: string;
|
|
status: "active" | "inactive";
|
|
createdAt: string;
|
|
lastLogin?: string;
|
|
}
|
|
|
|
export interface AuthState {
|
|
isAuthenticated: boolean;
|
|
user: User | null;
|
|
permissions: number[];
|
|
token: string | null;
|
|
}
|
|
|
|
export interface DashboardStats {
|
|
totalUsers: number;
|
|
totalRevenue: number;
|
|
totalOrders: number;
|
|
totalProducts: number;
|
|
monthlyGrowth: number;
|
|
weeklyGrowth: number;
|
|
}
|
|
|
|
export interface ChartData {
|
|
name: string;
|
|
value: number;
|
|
date?: string;
|
|
}
|
|
|
|
export interface TableColumn {
|
|
key: string;
|
|
label: string;
|
|
sortable?: boolean;
|
|
render?: (value: any, row: any) => any;
|
|
align?: "left" | "right" | "center";
|
|
}
|
|
|
|
export interface TableData {
|
|
[key: string]: any;
|
|
}
|
|
|
|
export interface MenuItem {
|
|
id: string;
|
|
label: string;
|
|
icon: any;
|
|
path: string;
|
|
permission?: number;
|
|
children?: MenuItem[];
|
|
}
|
|
|
|
export interface Theme {
|
|
mode: "light" | "dark";
|
|
}
|
|
|
|
export interface Notification {
|
|
id: string;
|
|
title: string;
|
|
message: string;
|
|
type: "success" | "error" | "warning" | "info";
|
|
timestamp: string;
|
|
read: boolean;
|
|
}
|