using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text.Json.Serialization;
namespace Blahblah.FlowerStory.Server.Data.Model;
///
/// 记录对象
///
[Table("records")]
public class RecordItem : ILocation
{
///
/// 自增 id,主键
///
[Column("rid")]
[Key]
[Required]
public int Id { get; set; }
///
/// 关联人 id
///
[Column("uid")]
[ForeignKey(nameof(Owner))]
[Required]
public required int OwnerId { get; set; }
///
/// 关联人
///
[JsonIgnore]
public UserItem? Owner { get; set; }
///
/// 关联花草 id
///
[Column("fid")]
[ForeignKey(nameof(Flower))]
[Required]
public required int FlowerId { get; set; }
///
/// 关联花草
///
[JsonIgnore]
public FlowerItem? Flower { get; set; }
///
/// 事件类型
///
[Column("eid")]
[Required]
public required int EventId { get; set; }
///
/// 操作时间
///
[Column("date")]
[Required]
[JsonPropertyName("date")]
public required long DateUnixTime { get; set; }
///
/// 操作人 uid
///
[Column("byuid")]
public int? ByUserId { get; set; }
///
/// 操作人名称
///
[Column("byname")]
public string? ByUserName { get; set; }
///
/// 备注
///
[Column("memo")]
public string? Memo { get; set; }
///
/// 操作时间
///
[NotMapped]
[JsonIgnore]
public DateTimeOffset Date => DateTimeOffset.FromUnixTimeMilliseconds(DateUnixTime);
///
/// 事件关联照片
///
public ICollection? Photos { get; set; }
///
/// 纬度
///
[Column("latitude")]
public double? Latitude { get; set; }
///
/// 经度
///
[Column("longitude")]
public double? Longitude { get; set; }
}