Tenho o seguinte código:
import mongoose from "mongoose";
const generosPermitidos = {
Ação: true,
Animação: true,
Aventura: true,
Chanchada: true,
"Cinema catástrofe": true,
Comédia: true,
"Comédia romântica": true,
"Comédia dramática": true,
"Comédia de ação": true,
Cult: true,
Documentários: true,
Drama: true,
Espionagem: true,
Erótico: true,
Fantasia: true,
Faroeste: true,
"Ficção científica": true,
Séries: true,
Guerra: true,
Machinima: true,
Musical: true,
"Filme noir": true,
Policial: true,
Pornochanchada: true,
Pornográfico: true,
Romance: true,
Suspense: true,
Terror: true,
Trash: true,
};
const filmeSchema = new mongoose.Schema(
{
id: { type: String },
nome: { type: String, required: [true, "O nome do filme é obrigatório"] },
ano: {
type: Number,
required: [true, "O ano de lançamento é obrigatório"],
min: [1895, "O ano deve estar entre 1895 e 2050"],
max: [2050, "O ano deve estar entre 1895 e 2050"],
},
diretor: { type: String },
Oscar: { type: Boolean },
genero: {
type: [String],
ref: String,
required: true,
validate: {
validator: function (val) {
return val.every((v) => generosPermitidos[v]);
},
message: "Um ou mais gêneros inseridos são inválidos",
},
},
},
{
versionKey: false,
}
);
const filmes = mongoose.model("filmes", filmeSchema);
export default filmes;
Meu campo diretor não é obrigatório, mas quando segui o passo a passo da aula mostra como se fosse obrigatório.
Teria alguma forma de resolver isso? Pensei no front fazer uma validação para se fosse em branco, inserir algo no campo, mas no backend existe alguma forma?