From 0c106fc6b248db58af17f9bb6142593022c6e932 Mon Sep 17 00:00:00 2001 From: Anton Sattarov <sattarov@perx.ru> Date: Thu, 23 Mar 2023 13:22:21 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=BE=20=D0=BE=D0=BF=D1=80=D0=B5=D0=B4=D0=B5=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D1=81=D1=82=D1=80=D1=83=D0=BA=D1=82=D1=83?= =?UTF-8?q?=D1=80=D1=8B=20space?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- spaces/space.go | 56 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 spaces/space.go diff --git a/spaces/space.go b/spaces/space.go new file mode 100644 index 00000000..7f135238 --- /dev/null +++ b/spaces/space.go @@ -0,0 +1,56 @@ +package spaces + +type State int + +const ( + StateUnknown State = iota + StateNew // Новое пространство, БД еще не инициализирована + StateReady // Пространство готово к использованию + StatePreparing // Пространство готовится в использованию + StateMaintenance // Пространство находится на обслуживании + StateMigration // Пространство в состоянии выполнения миграций + StateDeleting // Пространство удаляется, данные будут удалены + StateError // Произошла ошибка при конфигурации пространства (см. Space.Error) +) + +type Config struct { + Features []string //Deprecated Возможности используемые пространством +} + +const StateInfoEmpty = "EMPTY" + +type Space struct { + ID string `json:"id,omitempty" bson:"_id"` + OrgID string `json:"org_id,omitempty" bson:"org_id"` + Name string `json:"name,omitempty" bson:"name"` + Description string `json:"desc,omitempty" bson:"desc"` + State State `json:"state" bson:"state"` + StateInfo string `json:"stateInfo,omitempty" bson:"stateInfo,omitempty"` + Config *Config `json:"config" bson:"config"` +} + +func (s Space) Clone() *Space { + return &s +} + +func (s Space) Fetch(i interface{}) interface{} { + p, _ := i.(string) + switch p { + case "ID": + return s.ID + case "OrgID": + return s.OrgID + case "Name": + return s.Name + case "Description": + return s.Description + case "State": + return s.State + case "Config": + return s.Config + default: + panic("unknown parameter") + } + + return nil +} -- GitLab