- StatsResponse/LoginHistory 타입을 백엔드 스키마에 동기화 - 통계 카드 7개(사용자 상태별, 오늘 로그인, 전체 롤) + 로그인 이력 테이블 추가 - 권한 삭제 API 경로 수정 (/admin/roles/permissions/) - 사용자 관리에 관리자 지정/해제 토글 및 ADMIN 뱃지 추가 - 가이드/홈 페이지에 활동 추적(POST /activity/track) 연동 - CiCdGuide.tsx ESLint no-useless-escape 에러 수정 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
76 lines
1.3 KiB
TypeScript
76 lines
1.3 KiB
TypeScript
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;
|
|
}
|