diff options
Diffstat (limited to 'BackEnd')
-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 |