gc-guide/src/types/index.ts

76 lines
1.3 KiB
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;
}
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;
}