zenstack/packages/plugins/tanstack-query/tests/test-model-meta.ts
Simon Zimmerman a747d95e1f
refactor: correct minor mistakes picked up by coderabbitai in nitpick comments (#1887)
Co-authored-by: Simon Zimmerman <simon@mysolomon.co.uk>
2024-11-26 18:16:16 -08:00

100 lines
3.1 KiB
TypeScript

import { ModelMeta } from '@zenstackhq/runtime/cross';
const fieldDefaults = {
isId: false,
isDataModel: false,
isArray: false,
isOptional: true,
attributes: [],
isRelationOwner: false,
isForeignKey: false,
};
export const modelMeta: ModelMeta = {
models: {
user: {
name: 'user',
fields: {
id: {
...fieldDefaults,
type: 'String',
isId: true,
name: 'id',
isOptional: false,
},
name: { ...fieldDefaults, type: 'String', name: 'name' },
email: { ...fieldDefaults, type: 'String', name: 'name', isOptional: false },
posts: {
...fieldDefaults,
type: 'Post',
isDataModel: true,
isArray: true,
name: 'posts',
},
},
uniqueConstraints: { id: { name: 'id', fields: ['id'] } },
},
post: {
name: 'post',
fields: {
id: {
...fieldDefaults,
type: 'String',
isId: true,
name: 'id',
isOptional: false,
},
title: { ...fieldDefaults, type: 'String', name: 'title' },
owner: {
...fieldDefaults,
type: 'User',
name: 'owner',
isDataModel: true,
isRelationOwner: true,
foreignKeyMapping: { id: 'ownerId' },
},
ownerId: { ...fieldDefaults, type: 'String', name: 'ownerId', isForeignKey: true },
category: {
...fieldDefaults,
type: 'Category',
name: 'category',
isDataModel: true,
isRelationOwner: true,
backLink: 'posts',
foreignKeyMapping: { id: 'categoryId' },
},
categoryId: {
...fieldDefaults,
type: 'String',
name: 'categoryId',
isForeignKey: true,
relationField: 'category',
},
},
uniqueConstraints: { id: { name: 'id', fields: ['id'] } },
},
category: {
name: 'category',
fields: {
id: {
...fieldDefaults,
type: 'String',
isId: true,
name: 'id',
isOptional: false,
},
name: { ...fieldDefaults, type: 'String', name: 'name' },
posts: {
...fieldDefaults,
type: 'Post',
isDataModel: true,
isArray: true,
name: 'posts',
},
},
},
},
deleteCascade: {
user: ['Post'],
},
};