import { PluralSchema, SingularSchema } from '../schema'; export interface Post extends PluralSchema { /** * @minLength 5 * @maxLength 50 */ title: string; /** * @TJS-type integer */ userId: number; /** * @TJS-type integer */ groupId: number; user?: User; group?: Group; comments?: Comment[]; } export interface User extends PluralSchema { /** * @minLength 1 * @maxLength 20 */ name: string; token: string; posts?: Post[]; } export interface Group extends PluralSchema { /** * @minLength 1 * @maxLength 20 */ name: string; posts?: Post[]; } export interface Comment extends PluralSchema { /** * @minLength 5 * @maxLength 140 */ body: string; /** * @TJS-type integer */ postId: number; post?: Post; } export interface Tag extends PluralSchema { /** * @minLength 1 * @maxLength 20 */ name: string; /** * @TJS-type integer */ postId: number; post?: Post; } export interface Product extends PluralSchema { arr: string[]; arr1?: string[]; obj: object; obj1?: object; } export interface Testonly extends PluralSchema { tags?: string[]; metadata?: object; private?: boolean; private1?: boolean; weight?: number; test?: null; test1: null; } /** * @additionalProperties true */ export interface Profile extends SingularSchema { /** * @minLength 5 * @maxLength 20 */ name: string; desc?: string; }