From e7a441b8805f8b02ba37ab1f550fa2939fe9e7f0 Mon Sep 17 00:00:00 2001 From: crupest Date: Sat, 16 Apr 2022 23:15:51 +0800 Subject: ... --- BackEnd/Timeline/Entities/RegisterCode.cs | 24 ++++++++++++++++++++++ BackEnd/Timeline/Entities/UserEntity.cs | 3 +++ .../User/RegisterCode/IRegisterCodeService.cs | 17 +++++++++++++++ BackEnd/Timeline/Timeline.csproj | 2 ++ 4 files changed, 46 insertions(+) create mode 100644 BackEnd/Timeline/Entities/RegisterCode.cs create mode 100644 BackEnd/Timeline/Services/User/RegisterCode/IRegisterCodeService.cs (limited to 'BackEnd/Timeline') diff --git a/BackEnd/Timeline/Entities/RegisterCode.cs b/BackEnd/Timeline/Entities/RegisterCode.cs new file mode 100644 index 00000000..945d61e9 --- /dev/null +++ b/BackEnd/Timeline/Entities/RegisterCode.cs @@ -0,0 +1,24 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Timeline.Entities +{ + [Table("register_code")] + public class RegisterCode + { + [Key, Column("id"), DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public long Id { get; set; } + + [Column("owner_id")] + public long OwnerId { get; set; } + + [ForeignKey(nameof(OwnerId))] + public UserEntity Owner { get; set; } = default!; + + [Column("code")] + public string Code { get; set; } = default!; + + [Column("enabled")] + public bool Enabled { get; set; } + } +} diff --git a/BackEnd/Timeline/Entities/UserEntity.cs b/BackEnd/Timeline/Entities/UserEntity.cs index d8015ccf..267d0ef2 100644 --- a/BackEnd/Timeline/Entities/UserEntity.cs +++ b/BackEnd/Timeline/Entities/UserEntity.cs @@ -37,6 +37,9 @@ namespace Timeline.Entities [Column("last_modified")] public DateTime LastModified { get; set; } + [Column("register_code")] + public string? RegisterCode { get; set; } + public UserAvatarEntity? Avatar { get; set; } #pragma warning disable CA2227 // Collection properties should be read only diff --git a/BackEnd/Timeline/Services/User/RegisterCode/IRegisterCodeService.cs b/BackEnd/Timeline/Services/User/RegisterCode/IRegisterCodeService.cs new file mode 100644 index 00000000..e4aa17fa --- /dev/null +++ b/BackEnd/Timeline/Services/User/RegisterCode/IRegisterCodeService.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace Timeline.Services.User.RegisterCode +{ + public interface IRegisterCodeService + { + string? GetCurrentRegisterCode(long userId); + + List GetAllRegisterCodes(long userId); + + string CreateNewRegisterCode(long userId); + + List GetUsersIntroducedByCode(string registerCode); + + List GetUsersIntroducedByUser(long userId); + } +} diff --git a/BackEnd/Timeline/Timeline.csproj b/BackEnd/Timeline/Timeline.csproj index 28234a4d..c8964363 100644 --- a/BackEnd/Timeline/Timeline.csproj +++ b/BackEnd/Timeline/Timeline.csproj @@ -201,8 +201,10 @@ + + \ No newline at end of file -- cgit v1.2.3