-
Miłosz Grocholewski authoredMiłosz Grocholewski authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
modelElementSchema.ts 2.19 KiB
import { z } from 'zod';
import { colorSchema } from '@/models/colorSchema';
import { referenceSchema } from '@/models/referenceSchema';
import { submodelSchema } from '@/models/submodelSchema';
import { modelElementModificationSchema } from '@/models/modelElementModificationSchema';
import { glyphSchema } from '@/models/glyphSchema';
export const modelElementSchema = z.object({
id: z.number(),
model: z.number(),
glyph: glyphSchema.nullable(),
submodel: submodelSchema.nullable(),
compartment: z.number().nullable(),
elementId: z.string(),
x: z.number(),
y: z.number(),
z: z.number(),
width: z.number(),
height: z.number(),
fontSize: z.number(),
fontColor: colorSchema,
fillColor: colorSchema,
borderColor: colorSchema,
visibilityLevel: z.string(),
transparencyLevel: z.string(),
notes: z.string(),
symbol: z.string().nullable(),
fullName: z.string().nullable(),
abbreviation: z.string().nullable(),
formula: z.string().nullable(),
name: z.string(),
nameX: z.number(),
nameY: z.number(),
nameWidth: z.number(),
nameHeight: z.number(),
nameVerticalAlign: z.enum(['TOP', 'MIDDLE', 'BOTTOM']),
nameHorizontalAlign: z.enum(['LEFT', 'RIGHT', 'CENTER', 'END', 'START']),
synonyms: z.array(z.string()),
formerSymbols: z.array(z.string()),
activity: z.boolean().optional(),
lineWidth: z.number().optional(),
innerWidth: z.number().optional(),
outerWidth: z.number().optional(),
thickness: z.number().optional(),
shape: z.enum(['SQUARE_COMPARTMENT', 'OVAL_COMPARTMENT', 'PATHWAY']).optional(),
complex: z.number().nullable().optional(),
initialAmount: z.number().nullable().optional(),
charge: z.number().nullable().optional(),
initialConcentration: z.number().nullable().optional(),
onlySubstanceUnits: z.boolean().nullable().optional(),
homodimer: z.number().optional(),
hypothetical: z.boolean().nullable().optional(),
boundaryCondition: z.boolean().nullable().optional(),
constant: z.boolean().nullable().optional(),
substanceUnits: z.boolean().nullable().optional(),
borderLineType: z.string().optional(),
references: z.array(referenceSchema),
sboTerm: z.string(),
modificationResidues: z.array(modelElementModificationSchema).optional(),
});