using Microsoft.EntityFrameworkCore;
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace YBEE.EQM.Core;

/// <summary>
/// 监测计划数据上报类型
/// </summary>
[Comment("监测计划数据上报类型")]
public class ExamDataReport : DEntityBase
{
    /// <summary>
    /// 监测计划ID
    /// </summary>
    [Comment("监测计划ID")]
    [Required]
    public int ExamPlanId { get; set; }
    /// <summary>
    /// 上报类型
    /// </summary>
    [Comment("上报类型")]
    [Required, Column(TypeName = "smallint")]
    public DataReportType Type { get; set; }
    /// <summary>
    /// 状态
    /// </summary>
    [Comment("状态")]
    [Required, Column(TypeName = "smallint")]
    public ExamStatus Status { get; set; } = ExamStatus.READY;
    /// <summary>
    /// 开始时间
    /// </summary>
    [Comment("开始时间")]
    [Required]
    public DateTime BeginTime { get; set; }
    /// <summary>
    /// 结束时间
    /// </summary>
    [Comment("结束时间")]
    [Required]
    public DateTime EndTime { get; set; }
    /// <summary>
    /// 上报说明
    /// </summary>
    [Comment("上报说明")]
    [StringLength(2000)]
    public string Remark { get; set; } = "";

    /// <summary>
    /// 附件
    /// </summary>
    [Comment("附件")]
    [Column(TypeName = "json")]
    public string Attachments { get; set; } = "[]";

    /// <summary>
    /// 一对一引用（监测计划）
    /// </summary>
    public virtual ExamPlan ExamPlan { get; set; }
}
