export interface UserListItemDto {
  id: string;
  email: string;
  memberId: number | null;
  memberDisplayName: string | null;
  roles: string[];
  isActive: boolean;
  languagePreference: string;
  lastLoginAt: string | null;
  createdAt: string;
}

export type UserDto = UserListItemDto;

export interface CreateUserRequest {
  memberId: number | null;
  email: string;
  roles: string[];
  languagePreference: string;
}

export interface CreateUserResult {
  userId: string;
  tempPassword: string;
}

export interface UpdateUserRequest {
  email: string;
  roles: string[];
  isActive: boolean;
  languagePreference: string;
}

export interface UserQueryParams {
  page?: number;
  pageSize?: number;
  search?: string;
}

export interface PagedResult<T> {
  items: T[];
  totalCount: number;
  page: number;
  pageSize: number;
  totalPages: number;
}

export const ALL_ROLES = [
  'super_admin','pastor','board_member','coworker_chair','ministry_leader',
  'district_leader','cell_leader','coworker','finance','secretary',
  'worship_leader','member','visitor'
] as const;
