const { boolean } = require('joi');
const mongoose = require('mongoose');
const { Schema, model, SchemaTypes } = mongoose;
const mongoosePaginate = require('mongoose-paginate-v2');

mongoose.Types.ObjectId.isValid();

const chatSchema = new Schema(
	{
		companionId: {
			type: String,
		},
		name: {
			type: String,
			default: null,
		},
		lastName: {
			type: String,
			default: null,
		},
		originalName: {
			type: String,
			default: null,
		},
		originalLastName: {
			type: String,
			default: null,
		},
		avatarUrl: {
			type: String,
			default: null,
		},
		avatarsArr: {
			type: Array,
			default: [],
		},
		color: {
			type: String,
			default: null,
		},
		online: {
			type: String,
			default: null,
		},
		lastMessage: {
			type: String,
			default: null,
		},
		lastMessageCreatedAt: {
			type: String,
			default: null,
		},
		mute: {
			type: Boolean,
			default: false,
		},
		seen: {
			type: Number,
			default: 0,
		},
		sort: {
			type: Boolean,
			default: false,
		},
		total: {
			type: Number,
			default: 0,
		},
		watched: {
			type: Boolean,
			default: false,
		},
		typing: {
			type: Boolean,
			default: false,
		},
		number: {
			type: String,
			min: 8,
			max: 14,
		},
		owner: {
			type: SchemaTypes.ObjectId,
			ref: 'user',
		},
	},
	{ timestamps: true }
);
chatSchema.plugin(mongoosePaginate);
const Chat = model('chat', chatSchema);

module.exports = Chat;
