diff options
author | crupest <crupest@outlook.com> | 2022-04-16 23:15:51 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-04-16 23:15:51 +0800 |
commit | e7a441b8805f8b02ba37ab1f550fa2939fe9e7f0 (patch) | |
tree | d447644adbd41b3d4e0adc8800b00a7b88ad4ab7 /BackEnd/Timeline | |
parent | eb1b148146281449b56bd68d1f99b4e48287a0b7 (diff) | |
download | timeline-e7a441b8805f8b02ba37ab1f550fa2939fe9e7f0.tar.gz timeline-e7a441b8805f8b02ba37ab1f550fa2939fe9e7f0.tar.bz2 timeline-e7a441b8805f8b02ba37ab1f550fa2939fe9e7f0.zip |
...
Diffstat (limited to 'BackEnd/Timeline')
-rw-r--r-- | BackEnd/Timeline/Entities/RegisterCode.cs | 24 | ||||
-rw-r--r-- | BackEnd/Timeline/Entities/UserEntity.cs | 3 | ||||
-rw-r--r-- | BackEnd/Timeline/Services/User/RegisterCode/IRegisterCodeService.cs | 17 | ||||
-rw-r--r-- | BackEnd/Timeline/Timeline.csproj | 2 |
4 files changed, 46 insertions, 0 deletions
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<string> GetAllRegisterCodes(long userId); + + string CreateNewRegisterCode(long userId); + + List<long> GetUsersIntroducedByCode(string registerCode); + + List<long> 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 @@ </ItemGroup>
<ItemGroup>
<None Remove="Controllers\V2\" />
+ <None Remove="Services\User\RegisterCode\" />
</ItemGroup>
<ItemGroup>
<Folder Include="Controllers\V2\" />
+ <Folder Include="Services\User\RegisterCode\" />
</ItemGroup>
</Project>
\ No newline at end of file |