export interface User { id: number; email: string; name: string; avatarUrl: string | null; status: UserStatus; isAdmin: boolean; roles: Role[]; createdAt: string; lastLoginAt: string | null; } export type UserStatus = 'PENDING' | 'ACTIVE' | 'REJECTED' | 'DISABLED'; export interface Role { id: number; name: string; description: string; urlPatterns: string[]; } export interface AuthResponse { token: string; user: User; } export interface NavItem { path: string; label: string; icon?: string; children?: NavItem[]; } export interface Issue { id: number; title: string; body: string; status: 'OPEN' | 'IN_PROGRESS' | 'CLOSED'; priority: 'LOW' | 'NORMAL' | 'HIGH' | 'URGENT'; author: User; assignee: User | null; comments: IssueComment[]; createdAt: string; updatedAt: string; } export interface IssueComment { id: number; body: string; author: User; createdAt: string; } export interface Permission { id: number; roleId: number; urlPattern: string; } export interface StatsResponse { totalUsers: number; activeUsers: number; pendingUsers: number; rejectedUsers: number; disabledUsers: number; todayLogins: number; totalRoles: number; } export interface LoginHistory { id: number; loginAt: string; ipAddress: string; userAgent: string; }