53 lines
1.2 KiB
JavaScript
53 lines
1.2 KiB
JavaScript
// Anderson Valadares Pinto (20251PL.TSIAD0018) [SLS]
|
|
|
|
import mongoose from 'mongoose';
|
|
|
|
// Tipos aceitos no formulário. A lista também alimenta o <select> de add.ejs.
|
|
export const TIPOS = [
|
|
'Cordas',
|
|
'Percussão',
|
|
'Teclas',
|
|
'Sopro',
|
|
'Áudio',
|
|
'Acessórios',
|
|
];
|
|
|
|
const instrumentoSchema = new mongoose.Schema(
|
|
{
|
|
nome: {
|
|
type: String,
|
|
required: [true, 'Informe o nome do instrumento.'],
|
|
trim: true,
|
|
maxlength: [120, 'O nome pode ter no máximo 120 caracteres.'],
|
|
},
|
|
fabricante: {
|
|
type: String,
|
|
required: [true, 'Informe o fabricante.'],
|
|
trim: true,
|
|
maxlength: [120, 'O fabricante pode ter no máximo 120 caracteres.'],
|
|
},
|
|
preco: {
|
|
type: Number,
|
|
required: [true, 'Informe o preço.'],
|
|
min: [0, 'O preço não pode ser negativo.'],
|
|
},
|
|
tipo: {
|
|
type: String,
|
|
required: [true, 'Informe o tipo do instrumento.'],
|
|
trim: true,
|
|
enum: {
|
|
values: TIPOS,
|
|
message: 'Escolha um tipo da lista.',
|
|
},
|
|
},
|
|
},
|
|
{
|
|
timestamps: true,
|
|
versionKey: false,
|
|
}
|
|
);
|
|
|
|
const Instrumento = mongoose.model('Instrumento', instrumentoSchema);
|
|
|
|
export default Instrumento;
|