feat(db/models): add co-author field to stories
This commit is contained in:
parent
490fa1469e
commit
9fe4d0c979
@ -1,19 +1,19 @@
|
||||
import mongoose, {Schema, PopulatedDoc, Document, Model} from "mongoose";
|
||||
import mongoose, { Schema, PopulatedDoc, Document, Model } from "mongoose";
|
||||
import SequenceFactory from "mongoose-sequence";
|
||||
|
||||
const AutoIncrement = SequenceFactory(mongoose);
|
||||
|
||||
import { Chapter, IChapter } from "./chapter";
|
||||
import {IUser} from "../../models/user";
|
||||
import { Ficmas, IFicmas } from "../../models/challenges/ficmas";
|
||||
import { IChallenge, Challenge } from "../../models/challenges/gen";
|
||||
import { hasMigrated } from "../../lib/dbconfig";
|
||||
import { IUser } from "~/models/user";
|
||||
import { Ficmas, IFicmas } from "~/models/challenges/ficmas";
|
||||
import { IChallenge, Challenge } from "~/models/challenges/gen";
|
||||
import { hasMigrated } from "~/lib/dbconfig";
|
||||
|
||||
export interface IStory extends Document {
|
||||
export interface IStory {
|
||||
_id?: number;
|
||||
title: string;
|
||||
author: PopulatedDoc<IUser & Document>;
|
||||
chapters: IChapter[]
|
||||
chapters: IChapter[];
|
||||
recs: number;
|
||||
favs: number;
|
||||
reviews: number;
|
||||
@ -24,63 +24,75 @@ export interface IStory extends Document {
|
||||
downloads: number;
|
||||
lastUpdate: Date;
|
||||
posted: Date;
|
||||
coAuthor: PopulatedDoc<IUser & Document> | null;
|
||||
}
|
||||
|
||||
const StorySchema = new mongoose.Schema<IStory>({
|
||||
_id: {
|
||||
type: Number
|
||||
type: Number,
|
||||
},
|
||||
title: {
|
||||
type: String
|
||||
type: String,
|
||||
},
|
||||
author: {
|
||||
type: Number,
|
||||
ref: "User"
|
||||
ref: "User",
|
||||
},
|
||||
coAuthor: {
|
||||
type: Number,
|
||||
ref: "User",
|
||||
default: null,
|
||||
},
|
||||
chapters: [Chapter],
|
||||
recs: {
|
||||
type: Number,
|
||||
default: 0
|
||||
default: 0,
|
||||
},
|
||||
favs: {
|
||||
type: Number,
|
||||
default: 0
|
||||
default: 0,
|
||||
},
|
||||
reviews: {
|
||||
type: Number,
|
||||
default: 0
|
||||
default: 0,
|
||||
},
|
||||
views: {
|
||||
type: Number,
|
||||
default: 0
|
||||
default: 0,
|
||||
},
|
||||
completed: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
default: false,
|
||||
},
|
||||
challenge: {
|
||||
type: Number,
|
||||
ref: "Challenge",
|
||||
default: null
|
||||
default: null,
|
||||
},
|
||||
ficmas: {
|
||||
type: Number,
|
||||
ref: "Ficmas",
|
||||
default: null
|
||||
default: null,
|
||||
},
|
||||
downloads: {
|
||||
type: Number,
|
||||
default: 0
|
||||
default: 0,
|
||||
},
|
||||
lastUpdate: {
|
||||
type: Date,
|
||||
default: new Date()
|
||||
default: new Date(),
|
||||
},
|
||||
posted: {
|
||||
type: Date,
|
||||
default: new Date()
|
||||
}
|
||||
})
|
||||
hasMigrated && Chapter.plugin(AutoIncrement, {id: "chapterid", inc_field: "id"})
|
||||
hasMigrated && StorySchema.plugin(AutoIncrement, {id: "storyid"})
|
||||
export const Story: Model<IStory> = /* mongoose.models.Story || */ mongoose.model("Story", StorySchema, "stories")
|
||||
default: new Date(),
|
||||
},
|
||||
});
|
||||
hasMigrated &&
|
||||
Chapter.plugin(AutoIncrement, { id: "chapterid", inc_field: "id" });
|
||||
hasMigrated && StorySchema.plugin(AutoIncrement, { id: "storyid" });
|
||||
export const Story: Model<IStory> =
|
||||
/* mongoose.models.Story || */ mongoose.model(
|
||||
"Story",
|
||||
StorySchema,
|
||||
"stories",
|
||||
);
|
||||
|
Loading…
Reference in New Issue
Block a user