mirror of https://github.com/pikami/cosmium.git
113 lines
3.4 KiB
Go
113 lines
3.4 KiB
Go
package repositorymodels
|
|
|
|
type Database struct {
|
|
ID string `json:"id"`
|
|
TimeStamp int64 `json:"_ts"`
|
|
ResourceID string `json:"_rid"`
|
|
ETag string `json:"_etag"`
|
|
Self string `json:"_self"`
|
|
}
|
|
|
|
type RepositoryStatus int
|
|
|
|
const (
|
|
StatusOk = 1
|
|
StatusNotFound = 2
|
|
Conflict = 3
|
|
BadRequest = 4
|
|
)
|
|
|
|
type Collection struct {
|
|
ID string `json:"id"`
|
|
IndexingPolicy CollectionIndexingPolicy `json:"indexingPolicy"`
|
|
PartitionKey CollectionPartitionKey `json:"partitionKey"`
|
|
ResourceID string `json:"_rid"`
|
|
TimeStamp int64 `json:"_ts"`
|
|
Self string `json:"_self"`
|
|
ETag string `json:"_etag"`
|
|
Docs string `json:"_docs"`
|
|
Sprocs string `json:"_sprocs"`
|
|
Triggers string `json:"_triggers"`
|
|
Udfs string `json:"_udfs"`
|
|
Conflicts string `json:"_conflicts"`
|
|
}
|
|
|
|
type CollectionIndexingPolicy struct {
|
|
IndexingMode string `json:"indexingMode"`
|
|
Automatic bool `json:"automatic"`
|
|
IncludedPaths []CollectionIndexingPolicyPath `json:"includedPaths"`
|
|
ExcludedPaths []CollectionIndexingPolicyPath `json:"excludedPaths"`
|
|
}
|
|
|
|
type CollectionIndexingPolicyPath struct {
|
|
Path string `json:"path"`
|
|
Indexes []struct {
|
|
Kind string `json:"kind"`
|
|
DataType string `json:"dataType"`
|
|
Precision int `json:"precision"`
|
|
} `json:"indexes"`
|
|
}
|
|
|
|
type CollectionPartitionKey struct {
|
|
Paths []string `json:"paths"`
|
|
Kind string `json:"kind"`
|
|
Version int `json:"Version"`
|
|
}
|
|
|
|
type UserDefinedFunction struct {
|
|
Body string `json:"body"`
|
|
ID string `json:"id"`
|
|
ResourceID string `json:"_rid"`
|
|
TimeStamp int `json:"_ts"`
|
|
Self string `json:"_self"`
|
|
Etag string `json:"_etag"`
|
|
}
|
|
|
|
type StoredProcedure struct {
|
|
Body string `json:"body"`
|
|
ID string `json:"id"`
|
|
ResourceID string `json:"_rid"`
|
|
TimeStamp int `json:"_ts"`
|
|
Self string `json:"_self"`
|
|
Etag string `json:"_etag"`
|
|
}
|
|
|
|
type Trigger struct {
|
|
Body string `json:"body"`
|
|
ID string `json:"id"`
|
|
TriggerOperation string `json:"triggerOperation"`
|
|
TriggerType string `json:"triggerType"`
|
|
ResourceID string `json:"_rid"`
|
|
TimeStamp int `json:"_ts"`
|
|
Self string `json:"_self"`
|
|
Etag string `json:"_etag"`
|
|
}
|
|
|
|
type Document map[string]interface{}
|
|
|
|
type PartitionKeyRange struct {
|
|
ResourceID string `json:"_rid"`
|
|
ID string `json:"id"`
|
|
Etag string `json:"_etag"`
|
|
MinInclusive string `json:"minInclusive"`
|
|
MaxExclusive string `json:"maxExclusive"`
|
|
RidPrefix int `json:"ridPrefix"`
|
|
Self string `json:"_self"`
|
|
ThroughputFraction int `json:"throughputFraction"`
|
|
Status string `json:"status"`
|
|
Parents []any `json:"parents"`
|
|
TimeStamp int64 `json:"_ts"`
|
|
Lsn int `json:"lsn"`
|
|
}
|
|
|
|
type State struct {
|
|
// Map databaseId -> Database
|
|
Databases map[string]Database `json:"databases"`
|
|
|
|
// Map databaseId -> collectionId -> Collection
|
|
Collections map[string]map[string]Collection `json:"collections"`
|
|
|
|
// Map databaseId -> collectionId -> documentId -> Documents
|
|
Documents map[string]map[string]map[string]Document `json:"documents"`
|
|
}
|