aboutsummaryrefslogtreecommitdiff
path: root/BackEnd
diff options
context:
space:
mode:
Diffstat (limited to 'BackEnd')
-rw-r--r--BackEnd/Timeline/Entities/RegisterCode.cs24
-rw-r--r--BackEnd/Timeline/Entities/UserEntity.cs3
-rw-r--r--BackEnd/Timeline/Services/User/RegisterCode/IRegisterCodeService.cs17
-rw-r--r--BackEnd/Timeline/Timeline.csproj2
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