using System;
using System.Collections.Generic;

namespace Models.Models;

/// <summary>
/// Registro individual de ingreso de stock con valor y trazabilidad
/// </summary>
public partial class PhLsmStockEntry
{
    /// <summary>
    /// Identificador único del ingreso de stock
    /// </summary>
    public int Id { get; set; }

    /// <summary>
    /// Referencia al producto ingresado
    /// </summary>
    public int ProductId { get; set; }

    /// <summary>
    /// Cantidad ingresada en la unidad correspondiente del producto
    /// </summary>
    public double Quantity { get; set; }

    /// <summary>
    /// Precio unitario del producto en la moneda indicada
    /// </summary>
    public double Unitprice { get; set; }

    /// <summary>
    /// Moneda del ingreso (ej: ars, usd, eur)
    /// </summary>
    public string Currency { get; set; } = null!;

    /// <summary>
    /// Tipo de cambio aplicado respecto a ARS
    /// </summary>
    public double Exchangerate { get; set; }

    /// <summary>
    /// Fecha y hora del ingreso físico al stock
    /// </summary>
    public DateTime Entrydate { get; set; }

    /// <summary>
    /// Referencia externa: número de remito, factura o documento de ingreso
    /// </summary>
    public string? Reference { get; set; }

    /// <summary>
    /// Tipo de origen del ingreso (ej: compra, devolución, ajuste)
    /// </summary>
    public string? Sourcetype { get; set; }

    /// <summary>
    /// Identificador interno del documento de origen (opcional)
    /// </summary>
    public int? SourceId { get; set; }

    public virtual PhLsmProduct Product { get; set; } = null!;
}
