/*Canopy - The next generation of stoner streaming software
Copyright (C) 2024-2025 Rainbownapkin and the TTN Community

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.*/

//NPM Imports
const {mongoose} = require('mongoose');

const linkSchema = new mongoose.Schema({
    link: mongoose.SchemaTypes.String,
    type: mongoose.SchemaTypes.String
});

/**
 * DB Schema for documents representing a single chat message
 */
const chatSchema = new mongoose.Schema({
    user: {
        type: mongoose.SchemaTypes.String,
        required: true,
    },
    flair: {
        type: mongoose.SchemaTypes.String,
        //Leave this as unreq'd for internal type chats that have no flair
    },   
    highLevel: {
        type: mongoose.SchemaTypes.Number,
        default: 0,
        required: true,
    },
    msg: {
        type: mongoose.SchemaTypes.String,
        required: true,
    },
    type: {
        type: mongoose.SchemaTypes.String,
        required: true,
    },
    links: {
        type: [linkSchema],
        required: true,
    },
});

module.exports = chatSchema;