package infra

// VaultFile describes a single file inside a vault directory.
// It carries identity (vault + relative path), content metadata (size, mtime, sha256, mime)
// and structural classification (bucket, sub-bucket).
type VaultFile struct {
	VaultID   string `json:"vault_id"`   // e.g. "turismo_spain_app_turismo"
	VaultName string `json:"vault_name"` // e.g. "turismo_spain"
	RelPath   string `json:"rel_path"`   // path relative to vault root, e.g. "data/raw/foo.csv"
	Size      int64  `json:"size"`       // bytes
	Mtime     int64  `json:"mtime"`      // unix seconds (UTC)
	Sha256    string `json:"sha256"`     // hex lowercase
	Mime      string `json:"mime"`       // e.g. "text/csv"
	Ext       string `json:"ext"`        // e.g. ".csv"
	// Bucket is the top-level classification: "data" or "knowledge".
	Bucket string `json:"bucket"`
	// SubBucket is the second-level directory within the bucket.
	// Known values: raw, processed, exports (data); decisions, domains, models,
	// benchmarks, test_documents (knowledge). Empty string for files at bucket root.
	SubBucket string `json:"sub_bucket"`
}
