Added changes for the API to support profiles

This commit is contained in:
CakeAndBanana
2025-09-17 02:09:23 +02:00
parent a337481243
commit 28e1cc4695
5 changed files with 20 additions and 2 deletions

View File

@@ -3,8 +3,17 @@
namespace LightlessSync.API.Data;
[MessagePackObject(keyAsPropertyName: true)]
public record GroupData(string GID, string? Alias = null)
public record GroupData(string GID, string? Alias = null, DateTime? CreatedAt = null, string? Description = null, string? Tags = null, string? Avatar = null)
{
[IgnoreMember]
public string AliasOrGID => string.IsNullOrWhiteSpace(Alias) ? GID : Alias;
[IgnoreMember]
public DateTime? CreatedAt { get; set; } = CreatedAt;
[IgnoreMember]
public string? Description { get; set; } = Description;
[IgnoreMember]
public string? Tags { get; set; } = Tags;
[IgnoreMember]
public string? Avatar { get; set; } = Avatar;
}

View File

@@ -6,9 +6,10 @@ namespace LightlessSync.API.Dto.Group;
[MessagePackObject(keyAsPropertyName: true)]
public record GroupFullInfoDto(GroupData Group, UserData Owner, GroupPermissions GroupPermissions,
GroupUserPreferredPermissions GroupUserPermissions, GroupPairUserInfo GroupUserInfo,
GroupUserPreferredPermissions GroupUserPermissions, GroupPairUserInfo GroupUserInfo, DateTime? GroupUserJoinedAt,
Dictionary<string, GroupPairUserInfo> GroupPairUserInfos) : GroupInfoDto(Group, Owner, GroupPermissions)
{
public GroupUserPreferredPermissions GroupUserPermissions { get; set; } = GroupUserPermissions;
public GroupPairUserInfo GroupUserInfo { get; set; } = GroupUserInfo;
public DateTime? GroupUserJoinedAt { get; set; } = GroupUserJoinedAt;
}

View File

@@ -9,4 +9,5 @@ public record GroupPairDto(GroupData Group, UserData User) : GroupDto(Group)
public string UID => User.UID;
public string? UserAlias => User.Alias;
public string UserAliasOrUID => User.AliasOrUID;
}

View File

@@ -0,0 +1,6 @@
using LightlessSync.API.Data;
namespace LightlessSync.API.Dto.Group
{
public record GroupProfileDto(GroupData Group, string? Description, string? Tags, string? PictureBase64) : GroupDto(Group);
}

View File

@@ -57,6 +57,7 @@ public interface ILightlessHub
Task<bool> GroupJoinFinalize(GroupJoinDto passwordedGroup);
Task GroupLeave(GroupDto group);
Task GroupRemoveUser(GroupPairDto groupPair);
Task GroupSetProfile(GroupProfileDto dto);
Task GroupSetUserInfo(GroupPairUserInfoDto groupPair);
Task<List<GroupFullInfoDto>> GroupsGetAll();
Task GroupUnbanUser(GroupPairDto groupPair);