mirror of
https://github.com/drawdb-io/drawdb.git
synced 2025-12-22 03:00:50 +08:00
Rename files and reorganize directories
This commit is contained in:
187
src/data/schemas.js
Normal file
187
src/data/schemas.js
Normal file
@@ -0,0 +1,187 @@
|
||||
const tableSchema = {
|
||||
type: "object",
|
||||
properties: {
|
||||
id: { type: "integer" },
|
||||
name: { type: "string" },
|
||||
x: { type: "number" },
|
||||
y: { type: "number" },
|
||||
fields: {
|
||||
type: "array",
|
||||
items: {
|
||||
type: "object",
|
||||
properties: {
|
||||
name: { type: "string" },
|
||||
type: { type: "string" },
|
||||
default: { type: "string" },
|
||||
check: { type: "string" },
|
||||
primary: { type: "boolean" },
|
||||
unique: { type: "boolean" },
|
||||
notNull: { type: "boolean" },
|
||||
increment: { type: "boolean" },
|
||||
comment: { type: "string" },
|
||||
length: { type: ["string", "number"] },
|
||||
values: { type: "array", items: { type: "string" } },
|
||||
},
|
||||
required: [
|
||||
"name",
|
||||
"type",
|
||||
"default",
|
||||
"check",
|
||||
"primary",
|
||||
"unique",
|
||||
"notNull",
|
||||
"increment",
|
||||
"comment",
|
||||
"length",
|
||||
],
|
||||
},
|
||||
},
|
||||
comment: { type: "string" },
|
||||
indices: {
|
||||
type: "array",
|
||||
items: {
|
||||
type: "object",
|
||||
properties: {
|
||||
name: { type: "string" },
|
||||
unique: { type: "boolean" },
|
||||
fields: {
|
||||
type: "array",
|
||||
items: { type: "string" },
|
||||
},
|
||||
},
|
||||
required: ["name", "unique", "fields"],
|
||||
},
|
||||
},
|
||||
color: { type: "string", pattern: "^#[0-9a-fA-F]{6}$" },
|
||||
},
|
||||
required: ["id", "name", "x", "y", "fields", "comment", "indices", "color"],
|
||||
};
|
||||
|
||||
const areaSchema = {
|
||||
type: "object",
|
||||
properties: {
|
||||
id: { type: "integer" },
|
||||
name: { type: "string" },
|
||||
x: { type: "number" },
|
||||
y: { type: "number" },
|
||||
width: { type: "number" },
|
||||
height: { type: "number" },
|
||||
color: { type: "string", pattern: "^#[0-9a-fA-F]{6}$" },
|
||||
},
|
||||
required: ["id", "name", "x", "y", "width", "height", "color"],
|
||||
};
|
||||
|
||||
const noteSchema = {
|
||||
type: "object",
|
||||
properties: {
|
||||
id: { type: "integer" },
|
||||
x: { type: "number" },
|
||||
y: { type: "number" },
|
||||
title: { type: "string" },
|
||||
content: { type: "string" },
|
||||
color: { type: "string", pattern: "^#[0-9a-fA-F]{6}$" },
|
||||
height: { type: "number" },
|
||||
},
|
||||
required: ["id", "x", "y", "title", "content", "color", "height"],
|
||||
};
|
||||
|
||||
const typeSchema = {
|
||||
type: "object",
|
||||
properties: {
|
||||
name: { type: "string" },
|
||||
fields: {
|
||||
type: "array",
|
||||
items: {
|
||||
type: "object",
|
||||
properties: {
|
||||
name: { type: "string" },
|
||||
type: { type: "string" },
|
||||
values: {
|
||||
type: "array",
|
||||
items: { type: "string" },
|
||||
},
|
||||
},
|
||||
required: ["name", "type"],
|
||||
},
|
||||
},
|
||||
comment: { type: "string" },
|
||||
},
|
||||
required: ["name", "fields", "comment"],
|
||||
};
|
||||
|
||||
const jsonSchema = {
|
||||
type: "object",
|
||||
properties: {
|
||||
tables: {
|
||||
type: "array",
|
||||
items: { ...tableSchema },
|
||||
},
|
||||
relationships: {
|
||||
type: "array",
|
||||
items: {
|
||||
type: "object",
|
||||
properties: {
|
||||
startTableId: { type: "integer" },
|
||||
startFieldId: { type: "integer" },
|
||||
endTableId: { type: "integer" },
|
||||
endFieldId: { type: "integer" },
|
||||
startX: { type: "number" },
|
||||
startY: { type: "number" },
|
||||
endX: { type: "number" },
|
||||
endY: { type: "number" },
|
||||
name: { type: "string" },
|
||||
cardinality: { type: "string" },
|
||||
updateConstraint: { type: "string" },
|
||||
deleteConstraint: { type: "string" },
|
||||
mandatory: { type: "boolean" },
|
||||
id: { type: "integer" },
|
||||
},
|
||||
required: [
|
||||
"startTableId",
|
||||
"startFieldId",
|
||||
"endTableId",
|
||||
"endFieldId",
|
||||
"startX",
|
||||
"startY",
|
||||
"endX",
|
||||
"endY",
|
||||
"name",
|
||||
"cardinality",
|
||||
"updateConstraint",
|
||||
"deleteConstraint",
|
||||
"mandatory",
|
||||
"id",
|
||||
],
|
||||
},
|
||||
},
|
||||
notes: {
|
||||
type: "array",
|
||||
items: { ...noteSchema },
|
||||
},
|
||||
subjectAreas: {
|
||||
type: "array",
|
||||
items: { ...areaSchema },
|
||||
},
|
||||
},
|
||||
required: ["tables", "relationships", "notes", "subjectAreas"],
|
||||
};
|
||||
|
||||
const ddbSchema = {
|
||||
type: "object",
|
||||
properties: {
|
||||
author: { type: "string" },
|
||||
project: { type: "string" },
|
||||
filename: { type: "string" },
|
||||
date: { type: "string" },
|
||||
...jsonSchema.properties,
|
||||
},
|
||||
};
|
||||
|
||||
export {
|
||||
jsonSchema,
|
||||
ddbSchema,
|
||||
tableSchema,
|
||||
noteSchema,
|
||||
areaSchema,
|
||||
typeSchema,
|
||||
};
|
||||
Reference in New Issue
Block a user