Commit 3d8ef5b5 authored by Vinicius Monteiro's avatar Vinicius Monteiro

começando modelagem, verificando quais atributos vão ser necessários ou não

parent fad37390
......@@ -10,6 +10,7 @@
"dotenv": "^16.4.6",
"express": "^4.21.1",
"mongoose": "^8.8.3",
"mongoose-paginate-v2": "^1.8.5",
"prettier": "^3.4.1"
},
"devDependencies": {
......@@ -19,6 +20,7 @@
"@types/eslint": "^9.6.1",
"@types/express": "^5.0.0",
"@types/mongoose": "^5.11.97",
"@types/mongoose-paginate-v2": "^1.6.4",
"@types/node": "^22.10.1",
"@typescript-eslint/eslint-plugin": "^8.17.0",
"@typescript-eslint/parser": "^8.17.0",
......@@ -872,6 +874,16 @@
"mongoose": "*"
}
},
"node_modules/@types/mongoose-paginate-v2": {
"version": "1.6.4",
"resolved": "https://registry.npmjs.org/@types/mongoose-paginate-v2/-/mongoose-paginate-v2-1.6.4.tgz",
"integrity": "sha512-+kdtc/Zg7301fmH/awaSqPg0DST+adsKihvp8uma3df15AKZ9R3ga1uylNLK247WUOVvA1p94dTNXf1pRs6VVQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"mongoose-paginate-v2": "*"
}
},
"node_modules/@types/node": {
"version": "22.10.1",
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.1.tgz",
......@@ -3547,6 +3559,15 @@
"url": "https://opencollective.com/mongoose"
}
},
"node_modules/mongoose-paginate-v2": {
"version": "1.8.5",
"resolved": "https://registry.npmjs.org/mongoose-paginate-v2/-/mongoose-paginate-v2-1.8.5.tgz",
"integrity": "sha512-kFxhot+yw9KmpAGSSrF/o+f00aC2uawgNUbhyaM0USS9L7dln1NA77/pLg4lgOaRgXMtfgCENamjqZwIM1Zrig==",
"license": "MIT",
"engines": {
"node": ">=4.0.0"
}
},
"node_modules/mongoose/node_modules/ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
......
import mongoose, { Schema, Types } from "mongoose";
import paginate from "mongoose-paginate-v2";
export const TIPO_NOTIFICACAO = {
CURTIDA: "Curtida"
}
const NotificationSchema = new mongoose.Schema({
usuarioEnviou: {
title: {
type: String,
required: true
},
description: {
type: String,
default: null
},
senderUser: {
type: mongoose.Schema.Types.ObjectId,
required: true
},
usuarioRecebeu: {
receiverUser: {
type: mongoose.Schema.Types.ObjectId,
required: true
},
tipoNotificacao: {
notificationType: {
type: String,
enum: Object.values(TIPO_NOTIFICACAO),
required: true
},
dataEnvio: {
sentDate: {
type: Date,
required: true
default: null
},
dataRecebeu: {
receivedDate: {
type: Date,
required: true
default: null
}
// usuario que recebeu
// usuario que leu
// tipo da notificação
// data que foi enviada
// data que recebeu
// texto da notificação
// titulo da notificação
})
\ No newline at end of file
},
{ timestamps: { createdAt: "createdAt", updatedAt: "updatedAt" } }
);
NotificationSchema.plugin(paginate);
const Notification = mongoose.model("notifications", NotificationSchema);
export default Notification;
export const TIPO_NOTIFICACAO = {
export const NOTIFICATION_TYPE = {
// Interações com Postagens
CURTIDA: "Curtida",
COMENTARIO: "Comentário",
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment