gc-guide/src/types/index.ts

53 lines
943 B
TypeScript
Raw Normal View 히스토리

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