gc-guide/src/types/index.ts
htlee a0395622ab feat: 인증/라우팅/레이아웃 scaffold 구현
- AuthProvider + ProtectedRoute + AdminRoute (인증 가드)
- LoginPage (Google OAuth), PendingPage, DeniedPage
- AppLayout (사이드바 + 메인 콘텐츠)
- HomePage (퀵링크 카드), GuidePage (섹션 동적 렌더링)
- BrowserRouter 라우팅 구성
- API fetch 래퍼 + 메뉴 네비게이션 유틸
- 타입 정의 (User, Role, AuthResponse, NavItem, Issue)
- CLAUDE.md 상세화 (별도 세션 작업 가이드)
2026-02-14 13:25:20 +09:00

53 lines
943 B
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;
}