package auth import ( "log" "trade/web/internal/store" ) // BootstrapLLMConfig 初始化 llm_config 表。 func BootstrapLLMConfig(s *store.FuturesStore) error { return s.EnsureLLMConfigTable() } // Bootstrap 在 auth.db 没有任何 admin 时,写入默认管理员 admin/admin; // 并强制首次登录后改密码。已存在 admin 时静默跳过。 func Bootstrap(s *store.AuthStore) error { n, err := s.CountAdmins() if err != nil { return err } if n > 0 { return nil } hash, err := HashPassword("admin") if err != nil { return err } u, err := s.CreateUser("admin", hash, store.RoleAdmin) if err != nil { return err } if err := s.SetForcePasswordChange(u.ID, true); err != nil { return err } log.Printf("[bootstrap] admin created (default password), force password change enabled") return nil }