diff --git a/source/structure/r6.sindri.json b/source/structure/r6.sindri.json new file mode 100644 index 0000000..a6c393b --- /dev/null +++ b/source/structure/r6.sindri.json @@ -0,0 +1,205 @@ +{ + "domains": [ + { + "name": "sessions", + "data_fields": [ + { + "name": "key", + "type": "string_medium", + "nullable": false + }, + { + "name": "data", + "type": "string_long", + "nullable": false + } + ], + "constraints": [ + { + "kind": "unique", + "parameters": { + "fields": ["key"] + } + } + ] + }, + { + "name": "name_indices", + "data_fields": [ + { + "name": "name_image", + "type": "string_medium", + "nullable": false + }, + { + "name": "index", + "type": "integer", + "nullable": false + } + ], + "constraints": [ + { + "kind": "unique", + "parameters": { + "fields": ["name_image"] + } + } + ] + }, + { + "name": "members", + "key_field": { + "name": "id" + }, + "data_fields": [ + { + "name": "membership_number", + "type": "string_short", + "nullable": true + }, + { + "name": "name_real_value", + "type": "string_short", + "nullable": false + }, + { + "name": "name_real_index", + "type": "integer", + "nullable": false + }, + { + "name": "email_address_private", + "type": "string_short", + "nullable": true + }, + { + "name": "registered", + "type": "boolean", + "nullable": false + }, + { + "name": "enabled", + "type": "boolean", + "nullable": false + }, + { + "name": "email_use_veiled_address", + "type": "boolean", + "nullable": false + }, + { + "name": "email_use_nominal_address", + "type": "boolean", + "nullable": false + }, + { + "name": "email_redirect_to_private_address", + "type": "boolean", + "nullable": false + }, + { + "name": "email_allow_sending", + "type": "boolean", + "nullable": false + }, + { + "name": "password_image", + "type": "string_medium", + "nullable": true + }, + { + "name": "password_change_last_attempt", + "type": "integer", + "nullable": true + }, + { + "name": "password_change_token", + "type": "string_medium", + "nullable": true + } + ], + "constraints": [ + { + "kind": "unique", + "parameters": { + "fields": ["name_real_value","name_real_index"] + } + } + ] + }, + { + "name": "member_groups", + "data_fields": [ + { + "name": "member_id", + "type": "integer", + "nullable": false + }, + { + "name": "group_name", + "type": "string_medium", + "nullable": false + }, + { + "name": "_dummy", + "type": "boolean", + "nullable": true + } + ], + "constraints": [ + { + "kind": "foreign_key", + "parameters": { + "fields": ["member_id"], + "reference": { + "name": "members", + "fields": ["id"] + } + } + }, + { + "kind": "unique", + "parameters": { + "fields": ["member_id","group_name"] + } + } + ] + }, + { + "name": "admins", + "key_field": { + "name": "id" + }, + "data_fields": [ + { + "name": "name", + "type": "string_short", + "nullable": false + }, + { + "name": "email_address", + "type": "string_medium", + "nullable": true + }, + { + "name": "password_image", + "type": "string_medium", + "nullable": false + }, + { + "name": "password_fail_count", + "type": "integer", + "nullable": false + } + ], + "constraints": [ + { + "kind": "unique", + "parameters": { + "fields": ["name"] + } + } + ] + } + ] +}