From d40f6e6cf8150f9e112d0b5d8d7075c2fc90264b Mon Sep 17 00:00:00 2001 From: eug-vs Date: Wed, 10 Jun 2020 19:47:48 +0300 Subject: refactor: improve interfaces and expandAuthor --- models/polls/poll.schema.ts | 9 +++++++-- models/users/user.schema.ts | 4 +++- 2 files changed, 10 insertions(+), 3 deletions(-) (limited to 'models') diff --git a/models/polls/poll.schema.ts b/models/polls/poll.schema.ts index 79036c3..ea91051 100644 --- a/models/polls/poll.schema.ts +++ b/models/polls/poll.schema.ts @@ -1,18 +1,23 @@ import { Document, Schema, Types } from 'mongoose'; +import { User } from '../users/user.schema' interface ImageData { url: string; votes: number; } -export interface PollSchema extends Document { - authorId: string; +export interface Poll { + author: User; contents: { left: ImageData; right: ImageData; }; } +export interface PollSchema extends Document, Omit { + authorId: string; +} + const imageDataSchema = { url: String, diff --git a/models/users/user.schema.ts b/models/users/user.schema.ts index 5292add..e39f667 100644 --- a/models/users/user.schema.ts +++ b/models/users/user.schema.ts @@ -1,11 +1,13 @@ import { Document, Schema } from "mongoose" -export interface UserSchema extends Document { +export interface User { name: string; avatarUrl?: string; age?: number; } +export interface UserSchema extends Document, User {} + export const userSchema = new Schema({ name: String, avatarUrl: { -- cgit v1.2.3