import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
import { Document, Types, HydratedDocument } from 'mongoose';
import moment from 'moment';
import { Workspace } from './workspace.model';
import { Users } from './user.schema';

@Schema()
export class AllUserWorkspaces extends Document {

    @Prop({ type: Types.ObjectId, ref: Workspace.name, default: null })
    workspace_id: Types.ObjectId

    @Prop({ type: String, default: null })
    email: string = null

    @Prop({ type: Types.ObjectId, ref: Users.name, default: null })
    vendor_id: Types.ObjectId = null

    @Prop({ type: String, default: "MEMBER", enum: ["MEMBER", "OWNER", "ADMIN"] })
    role: string = "MEMBER"

    @Prop({ type: String, default: null })
    status: string = null

    @Prop({ type: Boolean, default: false })
    is_invite: boolean

    @Prop({ type: [String], default: false })
    vendor_roles: string[]

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

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

export const allUserWorkspacesSchema = SchemaFactory.createForClass(AllUserWorkspaces);