From ad8be9d7fa5bac2e17df9cf2620ae338a22b832e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=98=99=E2=97=A6=20The=20Tablet=20=E2=9D=80=20GamerGirla?= =?UTF-8?q?ndCo=20=E2=97=A6=E2=9D=A7?= Date: Tue, 3 Oct 2023 01:13:16 -0400 Subject: [PATCH] refactor(db/models): change draft type to story type with omitted fields --- models/stories/draft.ts | 108 ++++++++++------------------------------ 1 file changed, 27 insertions(+), 81 deletions(-) diff --git a/models/stories/draft.ts b/models/stories/draft.ts index 8634d8a..d689199 100644 --- a/models/stories/draft.ts +++ b/models/stories/draft.ts @@ -1,96 +1,42 @@ -import { hasMigrated } from "../../lib/dbconfig"; -import { IBand } from "../../models/band"; -import { IFicmas } from "../../models/challenges/ficmas"; -import { IChallenge } from "../../models/challenges/gen"; -import { IUser } from "../../models/user"; -import mongoose, {Schema, PopulatedDoc, Document, Model} from "mongoose"; +import { IStory } from "."; +import { hasMigrated } from "~/lib/dbconfig"; +import { IBand } from "~/models/band"; +import { IFicmas } from "~/models/challenges/ficmas"; +import { IChallenge } from "~/models/challenges/gen"; +import { IUser } from "~/models/user"; +import mongoose, { Schema, PopulatedDoc, Document, Model } from "mongoose"; import SequenceFactory from "mongoose-sequence"; +import { Chapter } from "./chapter"; const AutoIncrement = SequenceFactory(mongoose); -export interface IDraft { - _id?: number, - title: string; - chaptertitle: string; - updatedAt: Date; - author: PopulatedDoc; - notes: string; - genre: string[]; - bands: PopulatedDoc[]; - characters: string[]; - relationships: string[]; - summary: string; - nsfw: boolean; - hidden: boolean; - loggedInOnly: boolean; - oneshot: boolean; - challenge: PopulatedDoc; - ficmas: PopulatedDoc; -} +export type IDraft = Omit< + IStory, + "recs" | "favs" | "reviews" | "views" | "downloads" | "posted" +>; + +// const Cha const DraftSchema = new Schema({ title: { - type: String - }, - _id: { - type: Number - }, - chaptertitle: { type: String, }, - updatedAt: { - type: Date, - default: new Date() + _id: { + type: Number, + }, + coAuthor: { + type: Number, + ref: "User", + default: null, }, author: { type: Number, - ref: "User" + ref: "User", }, - notes: { - type: String - }, - genre: [{ - type: String - }], - bands: [{ - type: Number, - ref: "Band" - }], - characters: [{ - type: String - }], - relationships: [{ - type: String - }], - nsfw: { - type: Boolean - }, - summary: { - type: String - }, - hidden: { - type: Boolean, - default: false - }, - loggedInOnly: { - type: Boolean - }, - oneshot: { - type: Boolean, - default: false - }, - challenge: { - type: Number, - ref: "Challenge", - default: null - }, - ficmas: { - type: Number, - ref: "Ficmas", - default: null - } -}) + chapters: [Chapter], +}); -hasMigrated && DraftSchema.plugin(AutoIncrement, {id: "drafts"}) +hasMigrated && DraftSchema.plugin(AutoIncrement, { id: "drafts" }); -export const Draft: Model = /* mongoose.models.Draft || */ mongoose.model("Draft", DraftSchema, "drafts") +export const Draft: Model = + /* mongoose.models.Draft || */ mongoose.model("Draft", DraftSchema, "drafts");