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

export type MacroTargetDocument = MacroTarget & Document;

@Schema({ timestamps: true, strict: true })
export class MacroTarget {
  @Prop({
    type: Types.ObjectId,
    ref: "User",
    required: true,
  })
  userId!: Types.ObjectId;

  @Prop({ type: Number, default: 0 })
  calories!: number;

  @Prop({ type: Number, default: 0 })
  protein!: number;

  @Prop({ type: Number, default: 0 })
  carbohydrates!: number;

  @Prop({ type: Number, default: 0 })
  fats!: number;

  @Prop({ type: Date, required: true })
  effectiveDate!: Date;

  @Prop({ default: null })
  deleted_at!: Date | null;
}

export const MacroTargetSchema = SchemaFactory.createForClass(MacroTarget);

MacroTargetSchema.index({ userId: 1, effectiveDate: 1 }, { unique: true });
