Compare commits
1 commit
main
...
dev-public
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f6e49ab470 |
|
|
@ -2,11 +2,10 @@
|
||||||
|
|
||||||
## Beschreibung
|
## Beschreibung
|
||||||
|
|
||||||
- Datenmodell für [zeitbild](/zeitbild/meta)
|
- Datenmodell für Zeitbild
|
||||||
|
|
||||||
|
|
||||||
## Nutzung
|
## Nutzung
|
||||||
|
|
||||||
- siehe `tools/build -h`
|
- siehe `tools/build -h`
|
||||||
- Beispiel: `path=/tmp/zeitbild.sqlite && rm ${path} -f | tools/build -f sqlite | sqlite3 ${path}`
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,49 +0,0 @@
|
||||||
-- users
|
|
||||||
|
|
||||||
ALTER TABLE
|
|
||||||
"users"
|
|
||||||
ADD COLUMN
|
|
||||||
"dav_token" VARCHAR(255)
|
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
-- caldav_resources
|
|
||||||
|
|
||||||
ALTER TABLE
|
|
||||||
"caldav_resources"
|
|
||||||
RENAME TO
|
|
||||||
"ics_feed_resources"
|
|
||||||
;
|
|
||||||
|
|
||||||
ALTER TABLE
|
|
||||||
"ics_feed_resources"
|
|
||||||
DROP COLUMN
|
|
||||||
"read_only"
|
|
||||||
;
|
|
||||||
|
|
||||||
ALTER TABLE
|
|
||||||
"ics_feed_resources"
|
|
||||||
ADD COLUMN
|
|
||||||
"from_fucked_up_wordpress" BOOLEAN NOT NULL
|
|
||||||
;
|
|
||||||
|
|
||||||
COMMENT ON COLUMN
|
|
||||||
"resources"."kind"
|
|
||||||
IS
|
|
||||||
'»local« | »ics_feed«'
|
|
||||||
;
|
|
||||||
|
|
||||||
COMMENT ON COLUMN
|
|
||||||
"resources"."sub_id"
|
|
||||||
IS
|
|
||||||
'local_resources.id | ics_feed_resources.id'
|
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
-- _meta
|
|
||||||
|
|
||||||
UPDATE
|
|
||||||
"_meta"
|
|
||||||
SET
|
|
||||||
"revision" = 'r4'
|
|
||||||
;
|
|
||||||
|
|
@ -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';
|
|
||||||
|
|
@ -105,6 +105,11 @@
|
||||||
"type": "string_medium",
|
"type": "string_medium",
|
||||||
"nullable": false
|
"nullable": false
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "public",
|
||||||
|
"type": "boolean",
|
||||||
|
"nullable": false
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "begin",
|
"name": "begin",
|
||||||
"type": "string_medium",
|
"type": "string_medium",
|
||||||
|
|
@ -198,11 +203,6 @@
|
||||||
"type": "string_medium",
|
"type": "string_medium",
|
||||||
"nullable": false
|
"nullable": false
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "access_public",
|
|
||||||
"type": "boolean",
|
|
||||||
"nullable": false
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "access_level_default",
|
"name": "access_level_default",
|
||||||
"type": "integer",
|
"type": "integer",
|
||||||
|
|
|
||||||
|
|
@ -1,289 +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
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"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": "caldav_resources",
|
|
||||||
"key_field": {
|
|
||||||
"name": "id"
|
|
||||||
},
|
|
||||||
"data_fields": [
|
|
||||||
{
|
|
||||||
"name": "url",
|
|
||||||
"type": "string_medium",
|
|
||||||
"nullable": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "read_only",
|
|
||||||
"type": "boolean",
|
|
||||||
"nullable": false
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"constraints": [
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "resources",
|
|
||||||
"key_field": {
|
|
||||||
"name": "id"
|
|
||||||
},
|
|
||||||
"data_fields": [
|
|
||||||
{
|
|
||||||
"name": "kind",
|
|
||||||
"type": "string_short",
|
|
||||||
"nullable": false,
|
|
||||||
"description": "»local« | »caldav«"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "sub_id",
|
|
||||||
"type": "integer",
|
|
||||||
"nullable": false,
|
|
||||||
"description": "local_resources.id | caldav_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
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"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,294 +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
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"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,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"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
2024
tools/sindri/sindri
2024
tools/sindri/sindri
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue