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

export type InventoryTransactionDocument = InventoryTransaction & Document;

@Schema({ collection: "inventory_transactions", timestamps: false })
export class InventoryTransaction {
  @Prop({ required: true, enum: ["inbound", "outbound"] })
  declare type: string;

  @Prop({ required: true })
  declare documentId: string;

  @Prop({ type: Types.ObjectId, ref: "Warehouse", required: true })
  declare warehouseId: Types.ObjectId;

  @Prop({ type: Types.ObjectId, ref: "Item", required: true })
  declare itemId: Types.ObjectId;

  @Prop({ type: Types.ObjectId, ref: "Batch", required: true })
  declare batchId: Types.ObjectId;

  @Prop({ required: true })
  declare quantityMt: number;

  @Prop({ required: true })
  declare transactionDate: string;
}

export const InventoryTransactionSchema = SchemaFactory.createForClass(InventoryTransaction);
