From 1e35f058609612ae24f3b5cb2714dec0ca0267ad Mon Sep 17 00:00:00 2001
From: Christian Pointner <equinox@helsinki.at>
Date: Sat, 30 Dec 2017 02:42:19 +0100
Subject: [PATCH] added struct for import representation in store

---
 store/types.go | 40 +++++++++++++++++++++++++++++++++++++++-
 1 file changed, 39 insertions(+), 1 deletion(-)

diff --git a/store/types.go b/store/types.go
index 34819c5..ed71e8b 100644
--- a/store/types.go
+++ b/store/types.go
@@ -38,6 +38,7 @@ const (
 
 	publicGroupBn = "_public"
 
+	importsBn   = "imports"
 	filesBn     = "files"
 	playlistsBn = "playlists"
 
@@ -46,7 +47,7 @@ const (
 )
 
 var (
-	groupBuckets = []string{filesBn, playlistsBn} // these buckets will be created inside every group bucket
+	groupBuckets = []string{importsBn, filesBn, playlistsBn} // these buckets will be created inside every group bucket
 
 	ErrNotImplented = errors.New("not implemented")
 	ErrNotFound     = errors.New("not found")
@@ -83,6 +84,43 @@ type TimeAndUser struct {
 	Timestamp time.Time `josn:"timestamp"`
 }
 
+// stored in importsBn
+type ImportState int
+
+const (
+	ImportNew ImportState = iota
+	ImportPending
+	ImportRunning
+	ImportAborted
+	ImportDone
+)
+
+func (s ImportState) String() string {
+	switch s {
+	case ImportNew:
+		return "new"
+	case ImportRunning:
+		return "running"
+	case ImportAborted:
+		return "aborted"
+	case ImportDone:
+		return "done"
+	}
+	return "unknown"
+}
+
+func (s ImportState) MarshalText() (data []byte, err error) {
+	data = []byte(s.String())
+	return
+}
+
+type Import struct {
+	Created TimeAndUser      `json:"created"`
+	State   ImportState      `json:"state"`
+	Success bool             `json:"success"`
+	Log     map[int64]string `json:"log"`
+}
+
 // stored in filesBn
 type FileSource struct {
 	FileName string `json:"filename"`
-- 
GitLab