gc-guide/src/types/index.ts
htlee d72799011d feat: 백엔드 API 연동 강화 및 통계 페이지 개편
- 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>
2026-02-14 23:00:32 +09:00

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;
}