1. 01 Jan, 2026 2 commits
    • Edric Li's avatar
      feat(backend): add user custom attributes system · 3c3fed88
      Edric Li authored
      Add a flexible user attribute system that allows admins to define
      custom fields for users (text, textarea, number, email, url, date,
      select, multi_select types).
      
      - Add Ent schemas for UserAttributeDefinition and UserAttributeValue
      - Add service layer with validation logic
      - Add repository layer with batch operations support
      - Add admin API endpoints for CRUD and reorder operations
      - Add batch API for loading attribute values for multiple users
      - Add database migration (018_user_attributes.sql)
      
      🤖 Generated with [Claude Code](https://claude.com/claude-code
      
      )
      Co-Authored-By: default avatarClaude Opus 4.5 <noreply@anthropic.com>
      3c3fed88
    • ianshaw's avatar
      feat(gemini): 添加 Google One 存储空间推断 Tier 功能 · 7df914af
      ianshaw authored
      ## 功能概述
      通过 Google Drive API 获取存储空间配额来推断 Google One 订阅等级,并优化统一的配额显示系统。
      
      ## 后端改动
      - 新增 Drive API 客户端 (drive_client.go)
        - 支持代理和指数退避重试
        - 处理 403/429 错误
      - 添加 Tier 推断逻辑 (inferGoogleOneTier)
        - 支持 6 种 tier 类型:AI_PREMIUM, GOOGLE_ONE_STANDARD, GOOGLE_ONE_BASIC, FREE, GOOGLE_ONE_UNKNOWN, GOOGLE_ONE_UNLIMITED
      - 集成到 OAuth 流程
        - ExchangeCode: 授权时自动获取 tier
        - RefreshAccountToken: Token 刷新时更新 tier (24小时缓存)
      - 新增管理 API 端点
        - POST /api/v1/admin/accounts/:id/refresh-tier (单个账号刷新)
        - POST /api/v1/admin/accounts/batch-refresh-tier (批量刷新)
      
      ## 前端改动
      - 更新 AccountQuotaInfo.vue
        - 添加 Google One tier 标签映射
        - 添加 tier 颜色样式 (紫色/蓝色/绿色/灰色/琥珀色)
      - 更新 AccountUsageCell.vue
        - 添加 Google One tier 显示逻辑
        - 根据 oauth_type 区分显示方式
      - 添加国际化翻译 (en.ts, zh.ts)
        - aiPremium, standard, basic, free, personal, unlimited
      
      ## Tier 推断规则
      - >= 2TB: AI Premium
      - >= 200GB: Google One Standard
      - >= 100GB: Google One Basic
      - >= 15GB: Free
      - > 100TB: Unlimited (G Suite legacy)
      - 其他/失败: Unknown (显示为 Personal)
      
      ## 优雅降级
      - Drive API 失败时使用 GOOGLE_ONE_UNKNOWN
      - 不阻断 OAuth 流程
      - 24小时缓存避免频繁调用
      
      ## 测试
      -  后端编译成功
      -  前端构建成功
      -  所有代码符合现有规范
      7df914af
  2. 28 Dec, 2025 2 commits
  3. 26 Dec, 2025 2 commits
    • ianshaw's avatar
      fix(backend): 修复 rebase 后的代码集成问题 · 9780f0fd
      ianshaw authored
      - 更新 middleware import 路径到 internal/server/middleware
      - 修复 api_key_auth_google.go 使用正确的 service 类型
      - 更新 router.go 和 http.go 支持 Gemini v1beta 路由
      - 在 routes/gateway.go 中添加 Gemini v1beta API 端点
      - 在 routes/admin.go 中添加 Gemini OAuth 路由
      - 更新 wire.go 添加 GeminiOAuthService cleanup
      - 重新生成 wire_gen.go
      9780f0fd
    • Forest's avatar
      refactor: 调整 server 目录结构 · 57fd1722
      Forest authored
      57fd1722