import { Prop, Schema, SchemaFactory } from "@nestjs/mongoose";
import { Document, Types } from "mongoose";
import mongoose from "mongoose";
import * as moment from "moment";

export type MessageMediaDocument = MessageMedia & Document;

@Schema()
export class MessageMedia {
    @Prop({ type: mongoose.Schema.Types.ObjectId, ref: "connections" })
    connection_id: Types.ObjectId;

    @Prop({ type: mongoose.Schema.Types.ObjectId, ref: "messages" })
    message_id: Types.ObjectId;

    @Prop({ type: mongoose.Schema.Types.ObjectId, ref: "users" })
    sender_id: Types.ObjectId;

    @Prop({ type: Array<String>, required: false })
    colors: string[] = [];

    @Prop({ default: null })
    type: string;

    @Prop({ default: null })
    media_url: string;

    @Prop({ default: null })
    caption: string;

    @Prop({ default: 0 })
    duration: Number;

    @Prop({ default: null })
    thumbnail: string;

    @Prop([{ type: Types.ObjectId, ref: "users", default: null }])
    deleted_for: Types.ObjectId[];

    @Prop()
    updated_at: number = moment().utc().valueOf();

    @Prop()
    created_at: number = moment().utc().valueOf();
}

export const MessageMediaSchema = SchemaFactory.createForClass(MessageMedia);
