import { Ban, CheckCircle2, ShieldCheck, UserCog, Wallet, } from 'lucide-vue-next' import type { Component } from 'vue' import type { UserBatchAction, UserRole } from '@/api/users' import type { UserFilterOption, UserFilterRole, UserFilterStatus, UserSortOption, } from './user-management-types' export interface UserBatchActionOption { value: UserBatchAction label: string description: string icon: Component } export const USER_ROLE_FILTER_OPTIONS: UserFilterOption[] = [ { value: 'all', label: '全部角色' }, { value: 'admin', label: '管理员' }, { value: 'audit_admin', label: '审计管理员' }, { value: 'user', label: '普通用户' }, ] export const USER_STATUS_FILTER_OPTIONS: UserFilterOption[] = [ { value: 'all', label: '全部状态' }, { value: 'active', label: '活跃' }, { value: 'inactive', label: '禁用' }, ] export const USER_SORT_OPTIONS: UserFilterOption[] = [ { value: 'default', label: '默认排序' }, { value: 'created_at_desc', label: '创建时间 新到旧' }, { value: 'created_at_asc', label: '创建时间 旧到新' }, ] export const USER_BATCH_ACTION_OPTIONS: UserBatchActionOption[] = [ { value: 'enable', label: '启用', description: '恢复用户登录与调用', icon: CheckCircle2, }, { value: 'disable', label: '禁用', description: '暂停用户访问权限', icon: Ban, }, { value: 'update_access_control', label: '额度', description: '批量调整用户额度模式', icon: ShieldCheck, }, { value: 'update_role', label: '修改角色', description: '批量设为普通用户或管理员', icon: UserCog, }, { value: 'adjust_wallet_balance', label: '调整余额', description: '批量增加或扣减钱包余额', icon: Wallet, }, ] export function formatUserRoleLabel(role: UserRole | string): string { if (role === 'admin') return '管理员' if (role === 'audit_admin') return '审计管理员' return '普通用户' } export function userRoleBadgeVariant(role: UserRole | string): 'default' | 'secondary' { return role === 'admin' ? 'default' : 'secondary' }