comment system
This commit is contained in:
@@ -41,4 +41,9 @@ public class FlowerDatabase : DbContext
|
||||
/// 照片集
|
||||
/// </summary>
|
||||
public DbSet<PhotoItem> Photos { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 评论集
|
||||
/// </summary>
|
||||
public DbSet<CommentItem> Comments { get; set; }
|
||||
}
|
||||
|
99
Server/Data/Model/CommentItem.cs
Normal file
99
Server/Data/Model/CommentItem.cs
Normal file
@@ -0,0 +1,99 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Blahblah.FlowerStory.Server.Data.Model;
|
||||
|
||||
/// <summary>
|
||||
/// 评论对象
|
||||
/// </summary>
|
||||
[Table("comments")]
|
||||
public class CommentItem
|
||||
{
|
||||
/// <summary>
|
||||
/// 自增 id,主键
|
||||
/// </summary>
|
||||
[Column("cid")]
|
||||
[Key]
|
||||
[Required]
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联人 id
|
||||
/// </summary>
|
||||
[Column("uid")]
|
||||
[ForeignKey(nameof(Owner))]
|
||||
[Required]
|
||||
public int OwnerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联人
|
||||
/// </summary>
|
||||
[JsonIgnore]
|
||||
public UserItem? Owner { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作时间
|
||||
/// </summary>
|
||||
[Column("date")]
|
||||
[Required]
|
||||
[JsonPropertyName("date")]
|
||||
public long DateUnixTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联的事件 id
|
||||
/// </summary>
|
||||
[Column("rid")]
|
||||
[Required]
|
||||
[ForeignKey(nameof(Record))]
|
||||
public int RecordId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联的事件
|
||||
/// </summary>
|
||||
[JsonIgnore]
|
||||
public RecordItem Record { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// 评论类别:1-点赞,2-收藏,3-标签,default-评论
|
||||
/// </summary>
|
||||
[Column("category")]
|
||||
public int? CommentCategoryId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作人 uid
|
||||
/// </summary>
|
||||
[Column("byuid")]
|
||||
public int? ByUserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作人名称
|
||||
/// </summary>
|
||||
[Column("byname")]
|
||||
public string? ByUserName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 备注
|
||||
/// </summary>
|
||||
[Column("text")]
|
||||
public string? Text { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作时间
|
||||
/// </summary>
|
||||
[NotMapped]
|
||||
[JsonIgnore]
|
||||
public DateTimeOffset Date => DateTimeOffset.FromUnixTimeMilliseconds(DateUnixTime);
|
||||
|
||||
/// <summary>
|
||||
/// 纬度
|
||||
/// </summary>
|
||||
[Column("latitude")]
|
||||
public double? Latitude { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 经度
|
||||
/// </summary>
|
||||
[Column("longitude")]
|
||||
public double? Longitude { get; set; }
|
||||
}
|
@@ -24,7 +24,7 @@ public class FlowerItem : ILocation
|
||||
[Column("uid")]
|
||||
[ForeignKey(nameof(Owner))]
|
||||
[Required]
|
||||
public required int OwnerId { get; set; }
|
||||
public int OwnerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 所有人
|
||||
@@ -37,14 +37,14 @@ public class FlowerItem : ILocation
|
||||
/// </summary>
|
||||
[Column("categoryid")]
|
||||
[Required]
|
||||
public required int CategoryId { get; set; }
|
||||
public int CategoryId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 花草名称
|
||||
/// </summary>
|
||||
[Column("name")]
|
||||
[Required]
|
||||
public required string Name { get; set; }
|
||||
public string Name { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// 购买时间
|
||||
@@ -52,7 +52,7 @@ public class FlowerItem : ILocation
|
||||
[Column("datebuy")]
|
||||
[Required]
|
||||
[JsonPropertyName("dateBuy")]
|
||||
public required long DateBuyUnixTime { get; set; }
|
||||
public long DateBuyUnixTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 购买花费
|
||||
|
@@ -24,7 +24,7 @@ public class PhotoItem
|
||||
[Column("uid")]
|
||||
[ForeignKey(nameof(Owner))]
|
||||
[Required]
|
||||
public required int OwnerId { get; set; }
|
||||
public int OwnerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联人
|
||||
@@ -63,21 +63,21 @@ public class PhotoItem
|
||||
/// </summary>
|
||||
[Column("filetype")]
|
||||
[Required]
|
||||
public required string FileType { get; set; }
|
||||
public string FileType { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// 文件名
|
||||
/// </summary>
|
||||
[Column("filename")]
|
||||
[Required]
|
||||
public required string FileName { get; set; }
|
||||
public string FileName { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// 文件路径
|
||||
/// </summary>
|
||||
[Column("path")]
|
||||
[Required]
|
||||
public required string Path { get; set; }
|
||||
public string Path { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// 上传时间
|
||||
@@ -85,7 +85,7 @@ public class PhotoItem
|
||||
[Column("dateupload")]
|
||||
[Required]
|
||||
[JsonPropertyName("dateUpload")]
|
||||
public required long DateUploadUnixTime { get; set; }
|
||||
public long DateUploadUnixTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 上传时间
|
||||
|
@@ -24,7 +24,7 @@ public class RecordItem : ILocation
|
||||
[Column("uid")]
|
||||
[ForeignKey(nameof(Owner))]
|
||||
[Required]
|
||||
public required int OwnerId { get; set; }
|
||||
public int OwnerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联人
|
||||
@@ -38,7 +38,7 @@ public class RecordItem : ILocation
|
||||
[Column("fid")]
|
||||
[ForeignKey(nameof(Flower))]
|
||||
[Required]
|
||||
public required int FlowerId { get; set; }
|
||||
public int FlowerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联花草
|
||||
@@ -51,7 +51,7 @@ public class RecordItem : ILocation
|
||||
/// </summary>
|
||||
[Column("eid")]
|
||||
[Required]
|
||||
public required int EventId { get; set; }
|
||||
public int EventId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作时间
|
||||
@@ -59,7 +59,7 @@ public class RecordItem : ILocation
|
||||
[Column("date")]
|
||||
[Required]
|
||||
[JsonPropertyName("date")]
|
||||
public required long DateUnixTime { get; set; }
|
||||
public long DateUnixTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否为私有记录
|
||||
@@ -114,4 +114,22 @@ public class RecordItem : ILocation
|
||||
/// </summary>
|
||||
[Column("longitude")]
|
||||
public double? Longitude { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 点赞数
|
||||
/// </summary>
|
||||
[Column("likes")]
|
||||
public int? LikeCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 收藏数
|
||||
/// </summary>
|
||||
[Column("favs")]
|
||||
public int? FavoriteCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 评论数
|
||||
/// </summary>
|
||||
[Column("comments")]
|
||||
public int? CommentCount { get; set; }
|
||||
}
|
||||
|
@@ -16,14 +16,14 @@ public class TokenItem
|
||||
[Column("tid")]
|
||||
[Key]
|
||||
[Required]
|
||||
public required string Id { get; set; }
|
||||
public string Id { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// 关联用户 uid
|
||||
/// </summary>
|
||||
[Column("uid")]
|
||||
[Required]
|
||||
public required int UserId { get; set; }
|
||||
public int UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 登录时间
|
||||
@@ -31,7 +31,7 @@ public class TokenItem
|
||||
[Column("logondate")]
|
||||
[Required]
|
||||
[JsonPropertyName("logonDate")]
|
||||
public required long LogonDateUnixTime { get; set; }
|
||||
public long LogonDateUnixTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 活动时间
|
||||
@@ -39,7 +39,7 @@ public class TokenItem
|
||||
[Column("activedate")]
|
||||
[Required]
|
||||
[JsonPropertyName("activeDate")]
|
||||
public required long ActiveDateUnixTime { get; set; }
|
||||
public long ActiveDateUnixTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 过期时间
|
||||
@@ -47,14 +47,14 @@ public class TokenItem
|
||||
[Column("expiredate")]
|
||||
[Required]
|
||||
[JsonPropertyName("expireDate")]
|
||||
public required long ExpireDateUnixTime { get; set; }
|
||||
public long ExpireDateUnixTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 过期秒数
|
||||
/// </summary>
|
||||
[Column("expiresecs")]
|
||||
[Required]
|
||||
public required int ExpireSeconds { get; set; }
|
||||
public int ExpireSeconds { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 验证码
|
||||
|
@@ -23,7 +23,7 @@ public class UserItem
|
||||
/// </summary>
|
||||
[Column("id")]
|
||||
[Required]
|
||||
public required string UserId { get; set; }
|
||||
public string UserId { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// 密码,值为 SHA256(password+id+salt)
|
||||
@@ -41,7 +41,7 @@ public class UserItem
|
||||
/// </summary>
|
||||
[Column("level")]
|
||||
[Required]
|
||||
public required int Level { get; set; }
|
||||
public int Level { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 注册时间
|
||||
@@ -49,7 +49,7 @@ public class UserItem
|
||||
[Column("regdate")]
|
||||
[Required]
|
||||
[JsonPropertyName("registerDate")]
|
||||
public required long RegisterDateUnixTime { get; set; }
|
||||
public long RegisterDateUnixTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 最后变动时间
|
||||
|
Reference in New Issue
Block a user