lingapp-redacao
Version:
Mongoose model for managing essays
49 lines (48 loc) • 2.05 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Redacao = exports.PropostaRedacao = exports.CategoriaRedacao = void 0;
const mongoose_1 = require("mongoose");
const interfaces_1 = require("./interfaces");
const categoriaRedacaoSchema = new mongoose_1.Schema({
titulo: { type: String },
descricao: { type: String },
img: { type: mongoose_1.Schema.Types.ObjectId, ref: "File" },
valorPagoPorCorrecao: { type: Number },
}, {
timestamps: true,
});
const propostaRedacaoSchema = new mongoose_1.Schema({
tema: { type: String },
descricao: { type: String },
keywords: [{ type: String }],
materiaisAuxiliares: [{ type: mongoose_1.Schema.Types.ObjectId, ref: "File" }],
img: { type: mongoose_1.Schema.Types.ObjectId, ref: "File" },
categoriaRedacao: {
type: mongoose_1.Schema.Types.ObjectId,
ref: "CategoriaRedacao",
},
}, {
timestamps: true,
});
const rascunhoSchema = new mongoose_1.Schema({
texto: { type: String },
arquivo: { type: mongoose_1.Schema.Types.ObjectId, ref: "File" },
});
const redacaoSchema = new mongoose_1.Schema({
aluno: { type: mongoose_1.Schema.Types.ObjectId, ref: "Usuario", required: true },
tema: { type: mongoose_1.Schema.Types.ObjectId, ref: "PropostaRedacao", required: true },
texto: { type: String, required: true },
arquivo: { type: mongoose_1.Schema.Types.ObjectId, ref: "File", required: true },
rascunho: rascunhoSchema,
status: {
type: String,
enum: Object.values(interfaces_1.StatusRedacao),
default: interfaces_1.StatusRedacao.Rascunho,
},
avaliacoes: [{ type: mongoose_1.Schema.Types.ObjectId, ref: "Revisao" }],
submittedAt: { type: Date },
media: { type: Number },
}, { timestamps: true });
exports.CategoriaRedacao = (0, mongoose_1.model)("CategoriaRedacao", categoriaRedacaoSchema);
exports.PropostaRedacao = (0, mongoose_1.model)("PropostaRedacao", propostaRedacaoSchema);
exports.Redacao = (0, mongoose_1.model)("Redacao", redacaoSchema);