namespace SafeCampus.System;
[SugarTable("CameraInfo", TableDescription = "摄像头信息表")]
[Tenant(SqlSugarConst.DB_DEFAULT)]
[BatchEdit]
[CodeGen]
[IgnoreInitTable]
public class CameraInfo : PrimaryKeyEntity
{
    /// <summary>
    /// 摄像头编码
    /// </summary>
    [SugarColumn(ColumnName = "SensorId", ColumnDescription = "摄像头id", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string SensorId { get; set; }
    /// <summary>
    /// 摄像头名称
    /// </summary>
    [SugarColumn(ColumnName = "SensorName", ColumnDescription = "摄像头名称", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string SensorName { get; set; }
    /// <summary>
    /// 所属学校
    /// </summary>
    [SugarColumn(ColumnName = "FieldName", ColumnDescription = "所属学校", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string FieldName { get; set; }
    /// <summary>
    /// 学校ID
    /// </summary>
    [SugarColumn(ColumnName = "FieldId", ColumnDescription = "学校ID", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string FieldId { get; set; }
    /// <summary>
    /// 摄像头ip
    /// </summary>
    [SugarColumn(ColumnName = "DirectUrlIp", ColumnDescription = "摄像头ip", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string DirectUrlIp { get; set; }
    /// <summary>
    /// 摄像头在线状态
    /// </summary>
    [SugarColumn(ColumnName = "DeviceStatus", ColumnDescription = "摄像头在线状态",  IsNullable = true)]
    public bool DeviceStatus { get; set; }
    /// <summary>
    /// 摄像头快照地址
    /// </summary>
    [SugarColumn(ColumnName = "SnapshotUrl", ColumnDescription = "摄像头快照地址", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string SnapshotUrl { get; set; }
    /// <summary>
    /// 分辨率-宽度
    /// </summary>
    [SugarColumn(ColumnName = "ResWidth", ColumnDescription = "分辨率-宽度",  IsNullable = true)]
    public int ResWidth { get; set; }
    /// <summary>
    /// 分辨率-高度
    /// </summary>
    [SugarColumn(ColumnName = "ResHeight", ColumnDescription = "分辨率-高度", IsNullable = true)]
    public int ResHeight { get; set; }
    /// <summary>
    /// 最后同步时间
    /// </summary>
    [SugarColumn(ColumnName = "LastTime", ColumnDescription = "最后同步时间", IsNullable = true)]
    public DateTime LastTime { get; set; }
    /// <summary>
    /// 摄像头分组id
    /// </summary>
    [SugarColumn(ColumnName = "GroupId", ColumnDescription = "摄像头分组id", IsNullable = true)]
    public long? GroupId { get; set; }
    /// <summary>
    /// 推送人id
    /// </summary>
    [SugarColumn(ColumnName = "PushUserId", ColumnDescription = "推送人id", IsNullable = true)]
    public long PushUserId { get; set; }
    /// <summary>
    /// 推送人
    /// </summary>
    [Navigate(NavigateType.OneToOne, nameof(PushUserId), nameof(SysUser.Id))]
    public SysUser SysUserItem { get; set; }
    /// <summary>
    /// 摄像头分组
    /// </summary>
    [Navigate(NavigateType.OneToOne, nameof(GroupId), nameof(CameraGroup.Id))]
    public CameraGroup CameraGroupItem { get; set; }
}
