/**
 * Auth API Models
 * Models for authentication and authorization
 */

import { DepartmentResponseDto } from './department.models';
import { ApplicantResponseDto } from './applicant.models';

export interface LoginDto {
  apiKey: string;
  departmentCode: string;
}

export interface LoginResponseDto {
  accessToken: string;
  department: DepartmentResponseDto;
}

export interface DigiLockerLoginDto {
  digilockerId: string;
  name?: string;
  email?: string;
  phone?: string;
}

export interface DigiLockerLoginResponseDto {
  accessToken: string;
  applicant: ApplicantResponseDto;
}

export interface CurrentUserDto {
  id: string;
  type: 'APPLICANT' | 'DEPARTMENT' | 'ADMIN';
  name: string;
  email: string;
  role?: string;
  departmentCode?: string;
  departmentId?: string;
  digilockerId?: string;
  walletAddress?: string;
}
