export interface User {
  _id: string;
  firstName: string;
  lastName: string;
  phoneNumber: string;
  email: string;
  password: string;
  WalletStatus: string;
  isDeleted: boolean;
  planType: string;
  twoFactorVerification: boolean;
  createdAt: string;
}

export interface GetAllUsersResponse {
  users: User[];
  meta: {
    totalItems: number;
    totalPages: number;
    page: number;
    limit: number;
  };
}

export interface GetAllUsersRequest {
  page: number;
  limit: number;
  search: {
    firstName: string;
    lastName: string;
    email: string;
    phoneNumber: string;
    status: string;
  };
}

export interface AddUserRequest {
  firstName: string;
  lastName: string;
  email: string;
  phoneNumber: string;
  password: string;
  profilePicture: File | null;
}

export interface AddUserResponse {
  status: boolean;
  message: string;
}

export interface UpdateUserInterface {
  firstName?: string;
  lastName?: string;
  phoneNumber?: string;
  status?: string;
  profilePicture?: File | null;
}

export interface UpdateUserRequest {
  userId: string;
  data: UpdateUserInterface;
}

export interface UpdateUserResponse {
  status: boolean;
  message: string;
}

export interface SingleUserResponse {
  status: boolean;
  message: string;
  user: {
    profilePicture: string;
    _id: string;
    firstName: string;
    lastName: string;
    phoneNumber: string;
    email: string;
    WalletStatus: boolean;
    isDeleted: boolean;
    role: string;
    planType: string;
    twoFactorVerification: boolean;
    createdAt: string;
    updatedAt: string;
    status: boolean;
  };
}

export interface SingleUserRequest {
  userId: string;
}

export interface DeleteUserRequest {
  userId: string;
}

export interface DeleteUserResponse {
  status: boolean;
  message: string;
}
