models_bill_model.js

/**
 * @fileoverview Modèle Mongoose pour les factures
 * @module models/bill
 */

const mongoose = require('mongoose')

/**
 * Schéma Mongoose pour les factures
 * @typedef {Object} BillSchema
 * @property {Date} date - Date de la facture
 * @property {number} amount - Montant de la facture
 * @property {string} description - Description de la facture
 * @property {string} proof - URL du justificatif dans S3
 * @property {string} status - Statut de la facture ('En attente', 'Validé', 'Refusé')
 * @property {string} type - Type de la facture ('Restaurant', 'Transport', etc.)
 * @property {mongoose.Schema.Types.ObjectId} user - Référence vers l'utilisateur
 */
const billSchema = new mongoose.Schema({
    date: {
        type: Date,
        required: true
    },
    amount: {
        type: Number,
        required: true
    },
    description: {
        type: String,
        required: true
    },
    proof: {
        type: String,
        required: true
    },
    status: {
        type: String,
        required: true,
        enum: ['En attente', 'Validé', 'Refusé'],
        default: 'En attente'
    },
    type: {
        type: String,
        required: true,
        enum: ['Restaurant', 'Transport', 'Hébergement', 'Formation', 'Autre']
    },
    user: {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'User',
        required: true
    }
}, {
    timestamps: true
})

module.exports = mongoose.model('Bill', billSchema)