Files
system-builder/dist/example-def.js

143 lines
3.8 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var def = {
name: 'Todo',
storage: {
tables: [
{
name: "task",
relations: [
{
type: 'belongs-to',
table: 'list',
}
],
columns: [
{
name: "name",
type: "string",
nullable: false,
},
{
name: "description",
type: "string",
nullable: true,
},
{
name: "completed",
type: "boolean",
nullable: false,
},
{
name: "completed_date",
type: "date",
nullable: true,
},
{
name: "metadata",
type: "blob",
nullable: true,
}
]
},
{
name: "list",
relations: [],
columns: [
{
name: "name",
type: "string",
unique: false,
nullable: false,
},
]
},
{
name: "user",
relations: [],
columns: [
{
name: "name",
type: "string",
nullable: false,
},
{
name: "password",
type: "string",
nullable: false,
}
]
}
],
relations: [
{
left: 'list',
relation: 'many-to-many',
right: 'user',
columns: [
{
name: 'access',
type: 'string',
unique: false,
nullable: false,
}
]
}
]
},
views: [
{
component: 'task',
type: ['list', 'count'],
columns: [
'name',
'description',
'completed',
'completed_date',
],
orderBy: [
{
column: 'modified',
direction: 'desc'
}
],
filters: [
{
param: 'list',
column: 'list_id',
comparison: '=',
required: true
},
{
param: 'completed',
column: 'completed',
comparison: '=',
required: false
},
]
},
{
component: 'list',
type: ['list', 'count'],
columns: [
'name',
],
orderBy: [
{
column: 'modified',
direction: 'desc'
}
],
filters: [
{
param: 'user',
column: 'user_id',
comparison: '=',
required: true
},
]
},
]
};
exports.default = def;