using System;

namespace CncModels.Entity
{
    /// <summary>
    /// cnc_collect_record 采集结构化记录表
    /// </summary>
    public class CollectRecord
    {
        /// <summary>主键ID</summary>
        public long Id { get; set; }

        /// <summary>机床ID</summary>
        public int MachineId { get; set; }

        /// <summary>采集时间</summary>
        public DateTime CollectTime { get; set; }

        /// <summary>设备时间</summary>
        public DateTime? DeviceTime { get; set; }

        /// <summary>NC程序名</summary>
        public string ProgramName { get; set; }

        /// <summary>零件计数</summary>
        public decimal? PartCount { get; set; }

        /// <summary>设备状态</summary>
        public string DeviceStatus { get; set; }

        /// <summary>运行状态</summary>
        public string RunStatus { get; set; }

        /// <summary>操作模式</summary>
        public string OperateMode { get; set; }

        /// <summary>主轴设定速度</summary>
        public decimal? SpindleSpeedSet { get; set; }

        /// <summary>进给设定速度</summary>
        public decimal? FeedSpeedSet { get; set; }

        /// <summary>主轴实际速度</summary>
        public decimal? SpindleSpeedActual { get; set; }

        /// <summary>进给实际速度</summary>
        public decimal? FeedSpeedActual { get; set; }

        /// <summary>主轴负载</summary>
        public decimal? SpindleLoad { get; set; }

        /// <summary>主轴倍率</summary>
        public decimal? SpindleOverride { get; set; }

        /// <summary>开机时间</summary>
        public decimal? PowerOnTime { get; set; }

        /// <summary>运行时间</summary>
        public decimal? RunTime { get; set; }

        /// <summary>切削时间</summary>
        public decimal? CuttingTime { get; set; }

        /// <summary>循环时间</summary>
        public decimal? CycleTime { get; set; }

        /// <summary>加工状态</summary>
        public string MachiningStatus { get; set; }

        /// <summary>扩展数据（JSON 字符串）</summary>
        public string ExtraData { get; set; }

        /// <summary>创建时间</summary>
        public DateTime CreatedAt { get; set; }
    }
}
