/**
 * User Management types
 * Re-exports types from the auto-generated OpenAPI schema
 */

import type { components } from './generated/api';

// User DTOs
export type UserDTO = components['schemas']['UserDTO'];
export type CreateUserRequest = components['schemas']['CreateUserRequest'];
export type UpdateUserRequest = components['schemas']['UpdateUserRequest'];

// Password Management
export type ChangePasswordRequest = components['schemas']['ChangePasswordRequest'];

// Role Assignment
export type AssignRoleRequest = components['schemas']['AssignRoleRequest'];

/**
 * Custom types for UI state
 */

export interface UserListFilters {
  status?: 'ACTIVE' | 'LOCKED';
  roleId?: string;
  branchId?: string;
  search?: string;
}

export interface UserFormData {
  username: string;
  email: string;
  password: string;
  roleIds: string[];
  branchId?: string;
}
