package secret

import (
	"time"
)

// VaultMetadata contains information about a vault
type VaultMetadata struct {
	CreatedAt       time.Time `json:"createdAt"`
	Description     string    `json:"description,omitempty"`
	DerivationIndex uint32    `json:"derivation_index"`
	PublicKeyHash   string    `json:"public_key_hash,omitempty"` // Double SHA256 hash of the long-term public key
}

// UnlockerMetadata contains information about an unlocker
type UnlockerMetadata struct {
	Type      string    `json:"type"` // passphrase, pgp, keychain
	CreatedAt time.Time `json:"createdAt"`
	Flags     []string  `json:"flags,omitempty"`
}

// SecretMetadata contains information about a secret
type SecretMetadata struct {
	CreatedAt time.Time `json:"createdAt"`
	UpdatedAt time.Time `json:"updatedAt"`
}

// Configuration represents the global configuration
type Configuration struct {
	DefaultVault string `json:"defaultVault,omitempty"`
}
