import { type SortOrder, type UserRole, type UserStatus } from '../../../common/enums';

export interface PasswordPolicyResult {
  valid: boolean;
  errors: string[];
}

export interface SafeUser {
  id: string;
  email: string;
  username: string;
  role: string;
  status: string;
  mustChangePassword: boolean;
  languagePreference: string;
  appearancePreference: string;
  createdAt: Date;
  updatedAt: Date;
}

export interface UpdateUserData {
  email?: string;
  username?: string;
  role?: UserRole;
  status?: UserStatus;
  passwordHash?: string;
}

export interface UserFilters {
  search?: string;
  role?: UserRole;
  status?: UserStatus;
}

export interface ListUsersQuery {
  page: number;
  limit: number;
  search?: string;
  role?: UserRole;
  status?: UserStatus;
  sortBy: string;
  sortOrder: SortOrder;
}
