Compare commits
4 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
73f1117632 | ||
|
|
74218e885e | ||
|
|
85605fd33a | ||
|
|
0f094c853f |
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
## Beschreibung
|
## Beschreibung
|
||||||
|
|
||||||
- Datenmodell für [zeitbild](/zeitbild/meta)
|
- Datenmodell für Zeitbild
|
||||||
|
|
||||||
|
|
||||||
## Nutzung
|
## Nutzung
|
||||||
|
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
||||||
-- calendars
|
|
||||||
|
|
||||||
ALTER TABLE
|
|
||||||
"calendars"
|
|
||||||
ADD COLUMN
|
|
||||||
"hue" INTEGER NULL
|
|
||||||
;
|
|
||||||
|
|
||||||
UPDATE
|
|
||||||
"calendars"
|
|
||||||
SET
|
|
||||||
"hue" = (("id" * 40503) % 65535)
|
|
||||||
;
|
|
||||||
|
|
||||||
ALTER TABLE
|
|
||||||
"calendars"
|
|
||||||
ALTER COLUMN
|
|
||||||
"hue" SET NOT NULL
|
|
||||||
;
|
|
||||||
|
|
||||||
COMMENT ON COLUMN
|
|
||||||
"calendars"."hue"
|
|
||||||
IS
|
|
||||||
'scaled to a value between 0 and 65535'
|
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
-- _meta
|
|
||||||
|
|
||||||
UPDATE
|
|
||||||
"_meta"
|
|
||||||
SET
|
|
||||||
"revision" = 'r5'
|
|
||||||
;
|
|
||||||
|
|
@ -1,48 +0,0 @@
|
||||||
-- groups
|
|
||||||
CREATE TABLE
|
|
||||||
groups(
|
|
||||||
"id" SERIAL,
|
|
||||||
"name" VARCHAR(63) NOT NULL,
|
|
||||||
"label" VARCHAR(255) NOT NULL,
|
|
||||||
UNIQUE ("name"),
|
|
||||||
UNIQUE ("id")
|
|
||||||
)
|
|
||||||
;
|
|
||||||
|
|
||||||
-- user_groups
|
|
||||||
CREATE TABLE
|
|
||||||
user_groups(
|
|
||||||
"id" SERIAL,
|
|
||||||
"user_id" INTEGER NOT NULL,
|
|
||||||
"group_id" INTEGER NOT NULL,
|
|
||||||
FOREIGN KEY ("user_id") REFERENCES "users"("id"),
|
|
||||||
FOREIGN KEY ("group_id") REFERENCES "groups"("id"),
|
|
||||||
UNIQUE ("user_id","group_id"),
|
|
||||||
UNIQUE ("id")
|
|
||||||
)
|
|
||||||
;
|
|
||||||
|
|
||||||
-- calendar_access_attributed_group
|
|
||||||
CREATE TABLE
|
|
||||||
calendar_access_attributed_group(
|
|
||||||
"id" SERIAL,
|
|
||||||
"calendar_id" INTEGER NOT NULL,
|
|
||||||
"group_id" INTEGER NOT NULL,
|
|
||||||
"level" INTEGER NOT NULL,
|
|
||||||
FOREIGN KEY ("calendar_id") REFERENCES "calendars"("id"),
|
|
||||||
FOREIGN KEY ("group_id") REFERENCES "groups"("id"),
|
|
||||||
UNIQUE ("calendar_id","group_id"),
|
|
||||||
UNIQUE ("id")
|
|
||||||
)
|
|
||||||
;
|
|
||||||
COMMENT ON COLUMN calendar_access_attributed_group.level IS '0:none | 1:view | 2:edit | 3:admin';
|
|
||||||
|
|
||||||
-- calendar_access_attributed_user
|
|
||||||
ALTER TABLE
|
|
||||||
calendar_access_attributed
|
|
||||||
RENAME TO
|
|
||||||
calendar_access_attributed_user
|
|
||||||
;
|
|
||||||
|
|
||||||
-- meta
|
|
||||||
UPDATE _meta SET revision = 'r6';
|
|
||||||
|
|
@ -1,300 +0,0 @@
|
||||||
{
|
|
||||||
"domains": [
|
|
||||||
{
|
|
||||||
"name": "sessions",
|
|
||||||
"data_fields": [
|
|
||||||
{
|
|
||||||
"name": "key",
|
|
||||||
"type": "string_medium",
|
|
||||||
"nullable": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "data",
|
|
||||||
"type": "string_long",
|
|
||||||
"nullable": false,
|
|
||||||
"description": "JSON"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"constraints": [
|
|
||||||
{
|
|
||||||
"kind": "unique",
|
|
||||||
"parameters": {
|
|
||||||
"fields": ["key"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "auth_internal",
|
|
||||||
"key_field": null,
|
|
||||||
"data_fields": [
|
|
||||||
{
|
|
||||||
"name": "name",
|
|
||||||
"type": "string_short",
|
|
||||||
"nullable": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "password_image",
|
|
||||||
"type": "string_medium",
|
|
||||||
"nullable": false
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"constraints": [
|
|
||||||
{
|
|
||||||
"kind": "unique",
|
|
||||||
"parameters": {
|
|
||||||
"fields": ["name"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "users",
|
|
||||||
"key_field": {
|
|
||||||
"name": "id"
|
|
||||||
},
|
|
||||||
"data_fields": [
|
|
||||||
{
|
|
||||||
"name": "name",
|
|
||||||
"type": "string_short",
|
|
||||||
"nullable": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "email_address",
|
|
||||||
"type": "string_medium",
|
|
||||||
"nullable": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "dav_token",
|
|
||||||
"type": "string_medium",
|
|
||||||
"nullable": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"constraints": [
|
|
||||||
{
|
|
||||||
"kind": "unique",
|
|
||||||
"parameters": {
|
|
||||||
"fields": ["name"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "local_resources",
|
|
||||||
"key_field": {
|
|
||||||
"name": "id"
|
|
||||||
},
|
|
||||||
"data_fields": [
|
|
||||||
{
|
|
||||||
"name": "_dummy",
|
|
||||||
"type": "integer",
|
|
||||||
"nullable": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"constraints": [
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "local_resource_events",
|
|
||||||
"key_field": {
|
|
||||||
"name": "id"
|
|
||||||
},
|
|
||||||
"data_fields": [
|
|
||||||
{
|
|
||||||
"name": "local_resource_id",
|
|
||||||
"type": "integer",
|
|
||||||
"nullable": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "name",
|
|
||||||
"type": "string_medium",
|
|
||||||
"nullable": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "begin",
|
|
||||||
"type": "string_medium",
|
|
||||||
"nullable": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "end",
|
|
||||||
"type": "string_medium",
|
|
||||||
"nullable": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "location",
|
|
||||||
"type": "string_medium",
|
|
||||||
"nullable": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "link",
|
|
||||||
"type": "string_medium",
|
|
||||||
"nullable": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "description",
|
|
||||||
"type": "string_long",
|
|
||||||
"nullable": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"constraints": [
|
|
||||||
{
|
|
||||||
"kind": "foreign_key",
|
|
||||||
"parameters": {
|
|
||||||
"fields": ["local_resource_id"],
|
|
||||||
"reference": {
|
|
||||||
"name": "local_resources",
|
|
||||||
"fields": ["id"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "ics_feed_resources",
|
|
||||||
"key_field": {
|
|
||||||
"name": "id"
|
|
||||||
},
|
|
||||||
"data_fields": [
|
|
||||||
{
|
|
||||||
"name": "url",
|
|
||||||
"type": "string_medium",
|
|
||||||
"nullable": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "from_fucked_up_wordpress",
|
|
||||||
"type": "boolean",
|
|
||||||
"nullable": false
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"constraints": [
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "resources",
|
|
||||||
"key_field": {
|
|
||||||
"name": "id"
|
|
||||||
},
|
|
||||||
"data_fields": [
|
|
||||||
{
|
|
||||||
"name": "kind",
|
|
||||||
"type": "string_short",
|
|
||||||
"nullable": false,
|
|
||||||
"description": "»local« | »ics_feed«"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "sub_id",
|
|
||||||
"type": "integer",
|
|
||||||
"nullable": false,
|
|
||||||
"description": "local_resources.id | ics_feed_resources.id"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"constraints": [
|
|
||||||
{
|
|
||||||
"kind": "unique",
|
|
||||||
"parameters": {
|
|
||||||
"fields": ["kind","sub_id"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "calendars",
|
|
||||||
"key_field": {
|
|
||||||
"name": "id"
|
|
||||||
},
|
|
||||||
"data_fields": [
|
|
||||||
{
|
|
||||||
"name": "name",
|
|
||||||
"type": "string_medium",
|
|
||||||
"nullable": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "access_public",
|
|
||||||
"type": "boolean",
|
|
||||||
"nullable": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "access_level_default",
|
|
||||||
"type": "integer",
|
|
||||||
"nullable": false,
|
|
||||||
"description": "0:none | 1:view | 2:edit | 3:admin"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "resource_id",
|
|
||||||
"type": "integer",
|
|
||||||
"nullable": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "hue",
|
|
||||||
"type": "integer",
|
|
||||||
"nullable": false,
|
|
||||||
"description": "scaled to a value between 0 and 65535"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"constraints": [
|
|
||||||
{
|
|
||||||
"kind": "foreign_key",
|
|
||||||
"parameters": {
|
|
||||||
"fields": ["resource_id"],
|
|
||||||
"reference": {
|
|
||||||
"name": "resources",
|
|
||||||
"fields": ["id"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "calendar_access_attributed",
|
|
||||||
"key_field": {
|
|
||||||
"name": "id"
|
|
||||||
},
|
|
||||||
"data_fields": [
|
|
||||||
{
|
|
||||||
"name": "calendar_id",
|
|
||||||
"type": "integer",
|
|
||||||
"nullable": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "user_id",
|
|
||||||
"type": "integer",
|
|
||||||
"nullable": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "level",
|
|
||||||
"type": "integer",
|
|
||||||
"nullable": false,
|
|
||||||
"description": "0:none | 1:view | 2:edit | 3:admin"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"constraints": [
|
|
||||||
{
|
|
||||||
"kind": "foreign_key",
|
|
||||||
"parameters": {
|
|
||||||
"fields": ["calendar_id"],
|
|
||||||
"reference": {
|
|
||||||
"name": "calendars",
|
|
||||||
"fields": ["id"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"kind": "foreign_key",
|
|
||||||
"parameters": {
|
|
||||||
"fields": ["user_id"],
|
|
||||||
"reference": {
|
|
||||||
"name": "users",
|
|
||||||
"fields": ["id"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"kind": "unique",
|
|
||||||
"parameters": {
|
|
||||||
"fields": ["calendar_id","user_id"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
@ -1,424 +0,0 @@
|
||||||
{
|
|
||||||
"domains": [
|
|
||||||
{
|
|
||||||
"name": "sessions",
|
|
||||||
"data_fields": [
|
|
||||||
{
|
|
||||||
"name": "key",
|
|
||||||
"type": "string_medium",
|
|
||||||
"nullable": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "data",
|
|
||||||
"type": "string_long",
|
|
||||||
"nullable": false,
|
|
||||||
"description": "JSON"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"constraints": [
|
|
||||||
{
|
|
||||||
"kind": "unique",
|
|
||||||
"parameters": {
|
|
||||||
"fields": ["key"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "auth_internal",
|
|
||||||
"key_field": null,
|
|
||||||
"data_fields": [
|
|
||||||
{
|
|
||||||
"name": "name",
|
|
||||||
"type": "string_short",
|
|
||||||
"nullable": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "password_image",
|
|
||||||
"type": "string_medium",
|
|
||||||
"nullable": false
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"constraints": [
|
|
||||||
{
|
|
||||||
"kind": "unique",
|
|
||||||
"parameters": {
|
|
||||||
"fields": ["name"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "groups",
|
|
||||||
"key_field": {
|
|
||||||
"name": "id"
|
|
||||||
},
|
|
||||||
"data_fields": [
|
|
||||||
{
|
|
||||||
"name": "name",
|
|
||||||
"type": "string_short",
|
|
||||||
"nullable": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "label",
|
|
||||||
"type": "string_medium",
|
|
||||||
"nullable": false
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"constraints": [
|
|
||||||
{
|
|
||||||
"kind": "unique",
|
|
||||||
"parameters": {
|
|
||||||
"fields": ["name"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "users",
|
|
||||||
"key_field": {
|
|
||||||
"name": "id"
|
|
||||||
},
|
|
||||||
"data_fields": [
|
|
||||||
{
|
|
||||||
"name": "name",
|
|
||||||
"type": "string_short",
|
|
||||||
"nullable": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "email_address",
|
|
||||||
"type": "string_medium",
|
|
||||||
"nullable": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "dav_token",
|
|
||||||
"type": "string_medium",
|
|
||||||
"nullable": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"constraints": [
|
|
||||||
{
|
|
||||||
"kind": "unique",
|
|
||||||
"parameters": {
|
|
||||||
"fields": ["name"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "user_groups",
|
|
||||||
"key_field": {
|
|
||||||
"name": "id"
|
|
||||||
},
|
|
||||||
"data_fields": [
|
|
||||||
{
|
|
||||||
"name": "user_id",
|
|
||||||
"type": "integer",
|
|
||||||
"nullable": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "group_id",
|
|
||||||
"type": "integer",
|
|
||||||
"nullable": false
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"constraints": [
|
|
||||||
{
|
|
||||||
"kind": "foreign_key",
|
|
||||||
"parameters": {
|
|
||||||
"fields": ["user_id"],
|
|
||||||
"reference": {
|
|
||||||
"name": "users",
|
|
||||||
"fields": ["id"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"kind": "foreign_key",
|
|
||||||
"parameters": {
|
|
||||||
"fields": ["group_id"],
|
|
||||||
"reference": {
|
|
||||||
"name": "groups",
|
|
||||||
"fields": ["id"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"kind": "unique",
|
|
||||||
"parameters": {
|
|
||||||
"fields": ["user_id", "group_id"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "local_resources",
|
|
||||||
"key_field": {
|
|
||||||
"name": "id"
|
|
||||||
},
|
|
||||||
"data_fields": [
|
|
||||||
{
|
|
||||||
"name": "_dummy",
|
|
||||||
"type": "integer",
|
|
||||||
"nullable": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"constraints": [
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "local_resource_events",
|
|
||||||
"key_field": {
|
|
||||||
"name": "id"
|
|
||||||
},
|
|
||||||
"data_fields": [
|
|
||||||
{
|
|
||||||
"name": "local_resource_id",
|
|
||||||
"type": "integer",
|
|
||||||
"nullable": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "name",
|
|
||||||
"type": "string_medium",
|
|
||||||
"nullable": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "begin",
|
|
||||||
"type": "string_medium",
|
|
||||||
"nullable": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "end",
|
|
||||||
"type": "string_medium",
|
|
||||||
"nullable": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "location",
|
|
||||||
"type": "string_medium",
|
|
||||||
"nullable": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "link",
|
|
||||||
"type": "string_medium",
|
|
||||||
"nullable": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "description",
|
|
||||||
"type": "string_long",
|
|
||||||
"nullable": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"constraints": [
|
|
||||||
{
|
|
||||||
"kind": "foreign_key",
|
|
||||||
"parameters": {
|
|
||||||
"fields": ["local_resource_id"],
|
|
||||||
"reference": {
|
|
||||||
"name": "local_resources",
|
|
||||||
"fields": ["id"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "ics_feed_resources",
|
|
||||||
"key_field": {
|
|
||||||
"name": "id"
|
|
||||||
},
|
|
||||||
"data_fields": [
|
|
||||||
{
|
|
||||||
"name": "url",
|
|
||||||
"type": "string_medium",
|
|
||||||
"nullable": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "from_fucked_up_wordpress",
|
|
||||||
"type": "boolean",
|
|
||||||
"nullable": false
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"constraints": [
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "resources",
|
|
||||||
"key_field": {
|
|
||||||
"name": "id"
|
|
||||||
},
|
|
||||||
"data_fields": [
|
|
||||||
{
|
|
||||||
"name": "kind",
|
|
||||||
"type": "string_short",
|
|
||||||
"nullable": false,
|
|
||||||
"description": "»local« | »ics_feed«"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "sub_id",
|
|
||||||
"type": "integer",
|
|
||||||
"nullable": false,
|
|
||||||
"description": "local_resources.id | ics_feed_resources.id"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"constraints": [
|
|
||||||
{
|
|
||||||
"kind": "unique",
|
|
||||||
"parameters": {
|
|
||||||
"fields": ["kind","sub_id"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "calendars",
|
|
||||||
"key_field": {
|
|
||||||
"name": "id"
|
|
||||||
},
|
|
||||||
"data_fields": [
|
|
||||||
{
|
|
||||||
"name": "name",
|
|
||||||
"type": "string_medium",
|
|
||||||
"nullable": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "access_public",
|
|
||||||
"type": "boolean",
|
|
||||||
"nullable": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "access_level_default",
|
|
||||||
"type": "integer",
|
|
||||||
"nullable": false,
|
|
||||||
"description": "0:none | 1:view | 2:edit | 3:admin"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "resource_id",
|
|
||||||
"type": "integer",
|
|
||||||
"nullable": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "hue",
|
|
||||||
"type": "integer",
|
|
||||||
"nullable": false,
|
|
||||||
"description": "scaled to a value between 0 and 65535"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"constraints": [
|
|
||||||
{
|
|
||||||
"kind": "foreign_key",
|
|
||||||
"parameters": {
|
|
||||||
"fields": ["resource_id"],
|
|
||||||
"reference": {
|
|
||||||
"name": "resources",
|
|
||||||
"fields": ["id"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "calendar_access_attributed_group",
|
|
||||||
"key_field": {
|
|
||||||
"name": "id"
|
|
||||||
},
|
|
||||||
"data_fields": [
|
|
||||||
{
|
|
||||||
"name": "calendar_id",
|
|
||||||
"type": "integer",
|
|
||||||
"nullable": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "group_id",
|
|
||||||
"type": "integer",
|
|
||||||
"nullable": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "level",
|
|
||||||
"type": "integer",
|
|
||||||
"nullable": false,
|
|
||||||
"description": "0:none | 1:view | 2:edit | 3:admin"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"constraints": [
|
|
||||||
{
|
|
||||||
"kind": "foreign_key",
|
|
||||||
"parameters": {
|
|
||||||
"fields": ["calendar_id"],
|
|
||||||
"reference": {
|
|
||||||
"name": "calendars",
|
|
||||||
"fields": ["id"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"kind": "foreign_key",
|
|
||||||
"parameters": {
|
|
||||||
"fields": ["group_id"],
|
|
||||||
"reference": {
|
|
||||||
"name": "groups",
|
|
||||||
"fields": ["id"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"kind": "unique",
|
|
||||||
"parameters": {
|
|
||||||
"fields": ["calendar_id","group_id"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "calendar_access_attributed_user",
|
|
||||||
"key_field": {
|
|
||||||
"name": "id"
|
|
||||||
},
|
|
||||||
"data_fields": [
|
|
||||||
{
|
|
||||||
"name": "calendar_id",
|
|
||||||
"type": "integer",
|
|
||||||
"nullable": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "user_id",
|
|
||||||
"type": "integer",
|
|
||||||
"nullable": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "level",
|
|
||||||
"type": "integer",
|
|
||||||
"nullable": false,
|
|
||||||
"description": "0:none | 1:view | 2:edit | 3:admin"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"constraints": [
|
|
||||||
{
|
|
||||||
"kind": "foreign_key",
|
|
||||||
"parameters": {
|
|
||||||
"fields": ["calendar_id"],
|
|
||||||
"reference": {
|
|
||||||
"name": "calendars",
|
|
||||||
"fields": ["id"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"kind": "foreign_key",
|
|
||||||
"parameters": {
|
|
||||||
"fields": ["user_id"],
|
|
||||||
"reference": {
|
|
||||||
"name": "users",
|
|
||||||
"fields": ["id"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"kind": "unique",
|
|
||||||
"parameters": {
|
|
||||||
"fields": ["calendar_id","user_id"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
Loading…
Reference in a new issue