Select Git revision
client_encode_middleware.go
space.go 2.20 KiB
package spaces
import "time"
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"`
// TransferToOrg - идентификатор организации, в которую был запрошен перенос пространства
TransferToOrg string `json:"transfer_to_org" bson:"transfer_to_org"`
Config *Config `json:"config" bson:"config"`
StateInfo *StateInfo `json:"state_info,omitempty" bson:"state_info,omitempty"`
}
type StateInfo struct {
State State `json:"state" bson:"state"`
Info string `json:"info" bson:"info"`
Time time.Time `json:"time,omitempty" bson:"time,omitempty"`
DBVersion uint32 `json:"db_version" bson:"db_version"`
}
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 "Config":
return s.Config
case "StateInfo":
return s.StateInfo
default:
panic("unknown parameter")
}
}