package kvdb import "errors" var ( // ErrUserNotFound is returned when a user doesn't exist ErrUserNotFound = errors.New("user not found") // ErrUserAlreadyExists is returned when trying to create a user that already exists ErrUserAlreadyExists = errors.New("user already exists") ) // User represents a user in the system type User struct { AccessKeyID string `json:"access_key_id"` SecretAccessKey string `json:"secret_access_key"` AccountID string `json:"account_id"` Username string `json:"username"` Email string `json:"email"` } // KVDB defines the interface for key-value database operations type KVDB interface { // User operations GetUser(accessKeyID string) (*User, error) CreateUser(user *User) error UpdateUser(user *User) error DeleteUser(accessKeyID string) error ListUsers() ([]*User, error) // User validation ValidateCredentials(accessKeyID, secretAccessKey string) (*User, error) // Bucket operations ResolveBucketName(bucketName string) (accountID string, bucketID string, err error) GetBucketConfig(accountID, bucketID string) (*BucketConfig, error) // Close the database Close() error }