41 lines
826 B
TypeScript
41 lines
826 B
TypeScript
/**
|
|
* @file auth.ts
|
|
* @description Type definitions for authentication and user profiles.
|
|
*/
|
|
|
|
export interface User {
|
|
id: number
|
|
username: string
|
|
email: string
|
|
email_verified_at?: string | null
|
|
created_at?: string
|
|
updated_at?: string
|
|
role: {
|
|
code: string // เช่น 'STUDENT', 'INSTRUCTOR', 'ADMIN'
|
|
name: { th: string; en: string }
|
|
}
|
|
profile?: {
|
|
prefix: { th: string; en: string }
|
|
first_name: string
|
|
last_name: string
|
|
phone: string | null
|
|
avatar_url: string | null
|
|
}
|
|
}
|
|
|
|
export interface LoginResponse {
|
|
token: string
|
|
refreshToken: string
|
|
user: User
|
|
profile: User['profile']
|
|
}
|
|
|
|
export interface RegisterPayload {
|
|
username: string
|
|
email: string
|
|
password: string
|
|
first_name: string
|
|
last_name: string
|
|
prefix: { th: string; en: string }
|
|
phone: string
|
|
}
|