giganet_conecta
Version:
Aplicação com o fim de facilitar conexões com APi's e Banco de Dados (MySql, Mongo e Elasticsearch).
83 lines (72 loc) • 2.36 kB
JavaScript
const mongoose = require("mongoose");
module.exports = new mongoose.Schema(
{
// Status do registro (ativo, inativo, etc.)
status: { type: String, required: true },
// Informações do veículo
id_veiculo: { type: Number, required: true },
placa: {
type: String,
required: true,
},
// Informações financeiras e de despesas
id_fn_apagar: { type: Number, default: null },
id_filial: { type: Number, default: null },
// documento: { type: String, required: true },
// Informações adicionais
nome: { type: String, required: true },
cidade: { type: String, default: null },
descricao: { type: String, default: null },
// Dados de emissão
data_emissao: { type: String, required: true },
// Dados financeiros
valor: {
type: Number,
min: 0,
required: true,
get: (value) => parseFloat(value).toFixed(2),
set: (value) => parseFloat(value).toFixed(2),
},
// Abastecimentos
abastecimentos: {
type: [
new mongoose.Schema(
{
id_veiculo_despesa: { type: Number, default: null },
// Informações do condutor
id_condutor: { type: Number, required: true },
nome: { type: String, required: true },
// Dados do veículo
kilometragem: { type: Number, min: 0, required: true },
quantidade_litros: { type: Number, min: 0, required: true },
valor_litro: {
type: Number,
min: 0,
required: true,
get: (value) => parseFloat(value).toFixed(2),
set: (value) => parseFloat(value).toFixed(2),
},
descricao: { type: String, default: null },
},
{ _id: false }
),
],
required: true,
},
// Imagens relacionadas
images: {
type: [
new mongoose.Schema(
{
file_path_telegram: { type: String, required: true },
file_path: { type: String, required: true },
key: { type: String, required: true },
},
{ _id: false } // Desativa o _id no subdocumento
),
],
required: true,
},
},
{ timestamps: true }
);