Files
sbd2-frontend/src/types/auth.ts

48 lines
861 B
TypeScript

export interface User {
id: number
email: string
name: string
picture?: string
role: string
credits: number
is_active: boolean
plan: {
id: number
name: string
max_credits: number
features: string[]
}
created_at: string
updated_at: string
}
export interface TokenResponse {
access_token: string
token_type: string
expires_in: number
}
export interface AuthResponse {
user: User
token: TokenResponse
}
export interface LoginRequest {
email: string
password: string
}
export interface RegisterRequest {
email: string
password: string
name: string
}
export interface AuthContextType {
user: User | null
login: (credentials: LoginRequest) => Promise<void>
register: (data: RegisterRequest) => Promise<void>
logout: () => Promise<void>
loading: boolean
setUser?: (user: User | null) => void
}