giganet_conecta
Version:
Aplicação com o fim de facilitar conexões com APi's e Banco de Dados (MySql, Mongo e Elasticsearch).
70 lines (60 loc) • 2.02 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,
// match: /^[A-Z]{3}[0-9][0-9A-Z][0-9]{2}$/, // Padrão de placa brasileira
},
// Informações do condutor
id_condutor: { type: Number, required: true },
nome: { type: String, required: true },
// Informações financeiras e de despesas
id_fn_apagar: { type: Number, default: null },
id_veiculo_despesa: { type: Number, default: null },
id_filial: { type: Number, default: null },
// Informações adicionais
cidade: { type: String, default: null },
descricao: { type: String, default: null },
tipo: { type: String, required: true },
// Dados de emissão
data_emissao: { type: String, required: true },
// Dados financeiros
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),
},
valor: {
type: Number,
min: 0,
required: true,
get: (value) => parseFloat(value).toFixed(2),
set: (value) => parseFloat(value).toFixed(2),
},
// Dados do veículo
kilometragem: { type: Number, min: 0, 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 }
);