export interface Pagination { data: T[]; links: { first: string; last: string; }; meta: { current_page: number; from: number; last_page: number; per_page: number; to: number; total: number; } } export interface QuestionVariant { id: number; text: string; } export enum QuestionTypes { Single = "single", Multiple = "multiple", Text = "text" } export interface QuestionResponse { id: number; title: string; description: string; type: QuestionTypes; difficulty: number; variants?: QuestionVariant[]; correct_answers: number[]|string[]; category_id: number; category: CategoryResponse; author_id: number; author: UserResponse; created_at: string; updated_at: string; } export interface CategoryResponse { id: number; name: string; questions_count: number; user_tests_count: number; created_at: string; } export enum UserTypes { Admin = "admin", Creator = "creator", User = "user", Banned = "banned" } export interface UserResponse { id: number; username: string; email: string; email_verified_at: string; type: UserTypes; created_at: string; updated_at: string; } export interface AuthLoginResponse { access_token: string; token_type: string; user: UserResponse; }