import { Prop, Schema, SchemaFactory } from "@nestjs/mongoose";
import mongoose from "mongoose";
import { IFilterSetting } from "./filter-setting.interface";

export type FilterSettingModel = FilterSetting & Document;

@Schema({ timestamps: true })
export class FilterSetting implements IFilterSetting {
    _id?: string | mongoose.Types.ObjectId;

    @Prop({ type: String, required: false, default: "text" })
    type: "text" | "image" | "image_negative_prompt";

    @Prop({ type: String, required: false, default: "gpt-4o-mini" })
    modelForUser: "gpt-4o-mini"

    @Prop({ type: String, required: false, default: "gpt-4o-mini" })
    modelForAdmin: "gpt-4o-mini"

    @Prop({ type: Number, required: false, default: 0.2 })
    temperatureForUser: number;

    @Prop({ type: Number, required: false, default: 0.2 })
    temperatureForAdmin: number;

    @Prop({ type: String, required: false, default: "" })
    systemPromptForAdminEn: string;

    @Prop({ type: String, required: false, default: "" })
    systemPromptForUserEn: string;

    @Prop({ type: String, required: false, default: "" })
    systemPromptForAdminHe: string;

    @Prop({ type: String, required: false, default: "" })
    systemPromptForUserHe: string;

    @Prop({ type: Boolean, required: false })
    isActiveForAdmin?: boolean;

    @Prop({ type: Boolean, required: false })
    isActiveForUser?: boolean;

    @Prop({ type: Boolean, required: false })
    isSupportNegativePrompt?: boolean;
    

    createdAt: Date;
    updatedAt: Date;

}

export const FilterSettingSchema = SchemaFactory.createForClass(FilterSetting);
