add changes
This commit is contained in:
61
frontend/src/app/core/models/user.model.ts
Normal file
61
frontend/src/app/core/models/user.model.ts
Normal file
@@ -0,0 +1,61 @@
|
||||
/**
|
||||
* User Interface
|
||||
* Represents a registered user in the system
|
||||
*/
|
||||
export interface User {
|
||||
id: string;
|
||||
username: string;
|
||||
email: string;
|
||||
role: 'user' | 'admin';
|
||||
isActive: boolean;
|
||||
totalQuizzesTaken?: number;
|
||||
totalQuestionsAnswered?: number;
|
||||
totalCorrectAnswers?: number;
|
||||
currentStreak?: number;
|
||||
longestStreak?: number;
|
||||
averageScore?: number;
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* User Registration Request
|
||||
*/
|
||||
export interface UserRegistration {
|
||||
username: string;
|
||||
email: string;
|
||||
password: string;
|
||||
guestSessionId?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* User Login Request
|
||||
*/
|
||||
export interface UserLogin {
|
||||
email: string;
|
||||
password: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Auth Response
|
||||
*/
|
||||
export interface AuthResponse {
|
||||
success: boolean;
|
||||
token: string;
|
||||
user: User;
|
||||
message?: string;
|
||||
migratedStats?: {
|
||||
quizzesTaken: number;
|
||||
score: number;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Auth State (for signal management)
|
||||
*/
|
||||
export interface AuthState {
|
||||
user: User | null;
|
||||
isAuthenticated: boolean;
|
||||
isLoading: boolean;
|
||||
error: string | null;
|
||||
}
|
||||
Reference in New Issue
Block a user