DBE S04: cadastro e listagem de instrumentos musicais
This commit is contained in:
commit
bcf1a6d218
17 files changed
+2152
No files matched your search
@@ -0,0 +1,52 @@
|
||||
// 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;
|
||||
Reference in new issue
Block a user