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

export type MacroLogDocument = MacroLog & Document;

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

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

  @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({ default: null })
  deleted_at: Date | null;
}

export const MacroLogSchema =
  SchemaFactory.createForClass(MacroLog);

MacroLogSchema.index(
  {
    userId: 1,
    date: 1,
  },
  { unique: true },
);