From 4faa1a4b64e12681a94bc7d430b35e40f0b8dcef Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Wed, 3 Dec 2025 22:09:56 +0800 Subject: [PATCH] :bug: Fix message pack cache serilaize issue in sticker --- DysonNetwork.Shared/Models/Sticker.cs | 37 ++++++++++++++++++++------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/DysonNetwork.Shared/Models/Sticker.cs b/DysonNetwork.Shared/Models/Sticker.cs index 753c14f..44331a8 100644 --- a/DysonNetwork.Shared/Models/Sticker.cs +++ b/DysonNetwork.Shared/Models/Sticker.cs @@ -1,6 +1,7 @@ using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Text.Json.Serialization; +using MessagePack; using Microsoft.EntityFrameworkCore; namespace DysonNetwork.Shared.Models; @@ -9,15 +10,21 @@ namespace DysonNetwork.Shared.Models; public class SnSticker : ModelBase, IIdentifiedResource { public Guid Id { get; set; } = Guid.NewGuid(); - [MaxLength(128)] public string Slug { get; set; } = null!; + + [MaxLength(128)] + public string Slug { get; set; } = null!; // Outdated fields, for backward compability - [MaxLength(32)] public string? ImageId { get; set; } + [MaxLength(32)] + public string? ImageId { get; set; } - [Column(TypeName = "jsonb")] public SnCloudFileReferenceObject? Image { get; set; } = null!; + [Column(TypeName = "jsonb")] + public SnCloudFileReferenceObject? Image { get; set; } = null!; public Guid PackId { get; set; } - [JsonIgnore] public StickerPack Pack { get; set; } = null!; + + [JsonIgnore] + public StickerPack Pack { get; set; } = null!; public string ResourceIdentifier => $"sticker/{Id}"; } @@ -26,12 +33,22 @@ public class SnSticker : ModelBase, IIdentifiedResource public class StickerPack : ModelBase { public Guid Id { get; set; } = Guid.NewGuid(); - [MaxLength(1024)] public string Name { get; set; } = null!; - [MaxLength(4096)] public string Description { get; set; } = string.Empty; - [MaxLength(128)] public string Prefix { get; set; } = null!; + [MaxLength(1024)] + public string Name { get; set; } = null!; + + [MaxLength(4096)] + public string Description { get; set; } = string.Empty; + + [MaxLength(128)] + public string Prefix { get; set; } = null!; + + [IgnoreMember] public List Stickers { get; set; } = []; - [JsonIgnore] public List Ownerships { get; set; } = []; + + [IgnoreMember] + [JsonIgnore] + public List Ownerships { get; set; } = []; public Guid PublisherId { get; set; } public SnPublisher Publisher { get; set; } = null!; @@ -44,5 +61,7 @@ public class StickerPackOwnership : ModelBase public Guid PackId { get; set; } public StickerPack Pack { get; set; } = null!; public Guid AccountId { get; set; } - [NotMapped] public SnAccount Account { get; set; } = null!; + + [NotMapped] + public SnAccount Account { get; set; } = null!; }