Refactored 800+ line main.go into clean, domain-separated files: - main.go (96 lines) - Entry point and command router only - types.go - Type definitions and data structures - client.go - HTTP client and request handling - cmd_kv.go - Key-value operations (get/put/delete) - cmd_meta.go - Resource metadata commands - cmd_user.go - User management commands - cmd_profile.go - Profile management - cmd_cluster.go - Cluster operations (members/health) - cmd_system.go - System commands (connect/auth/help) - utils.go - Shared utilities (parsing, colors, completion) No functional changes, pure reorganization for maintainability. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
43 lines
1.0 KiB
Go
43 lines
1.0 KiB
Go
package main
|
|
|
|
import "encoding/json"
|
|
|
|
// Types matching the backend API
|
|
|
|
type StoredValue struct {
|
|
UUID string `json:"uuid"`
|
|
Timestamp int64 `json:"timestamp"`
|
|
Data json.RawMessage `json:"data"`
|
|
}
|
|
|
|
type Member struct {
|
|
ID string `json:"id"`
|
|
Address string `json:"address"`
|
|
LastSeen int64 `json:"last_seen"`
|
|
JoinedTimestamp int64 `json:"joined_timestamp"`
|
|
}
|
|
|
|
type User struct {
|
|
UUID string `json:"uuid"`
|
|
NicknameHash string `json:"nickname_hash"`
|
|
Groups []string `json:"groups"`
|
|
CreatedAt int64 `json:"created_at"`
|
|
UpdatedAt int64 `json:"updated_at"`
|
|
}
|
|
|
|
type Group struct {
|
|
UUID string `json:"uuid"`
|
|
NameHash string `json:"name_hash"`
|
|
Members []string `json:"members"`
|
|
CreatedAt int64 `json:"created_at"`
|
|
UpdatedAt int64 `json:"updated_at"`
|
|
}
|
|
|
|
// Profile represents a saved user configuration
|
|
type Profile struct {
|
|
Name string `json:"name"`
|
|
Token string `json:"token"`
|
|
UserUUID string `json:"user_uuid"`
|
|
BaseURL string `json:"base_url"`
|
|
}
|