// lib/api/auth/types.ts

/**
 * 인증 모드 타입
 */
export type AuthMode = 'sanctum' | 'api-key' | 'bearer';

/**
 * 사용자 정보
 */
export interface User {
  id: number;
  user_id: string;
  name: string;
  email: string;
  phone: string;
  role?: string;
  permissions?: string[];
  created_at?: string;
  updated_at?: string;
}

/**
 * 테넌트 정보 (추후 사용)
 */
export interface Tenant {
  id: number;
  name: string;
  // 추가 필드
}

/**
 * 메뉴 정보 (추후 사용)
 */
export interface Menu {
  id: number;
  name: string;
  // 추가 필드
}

/**
 * 로그인 요청 (PHP API 형식)
 */
export interface LoginCredentials {
  user_id: string;    // PHP API: user_id
  user_pwd: string;   // PHP API: user_pwd
}

/**
 * 로그인 응답 (PHP API 형식)
 */
export interface LoginResponse {
  message: string;
  user_token: string;  // Bearer 토큰
  user: User;
  tenant: Tenant | null;
  menus: Menu[];
}

/**
 * 회원가입 요청 (추후 구현)
 */
export interface RegisterData {
  name: string;
  email: string;
  password: string;
  password_confirmation: string;
}

/**
 * API 에러 응답
 */
export interface ApiError {
  message: string;
  errors?: Record<string, string[]>;
  code?: string;
}

/**
 * Bearer Token 응답 (모바일/SPA용)
 */
export interface BearerTokenResponse {
  access_token: string;
  token_type: 'Bearer';
  expires_in: number;
  user: User;
}