using System.Text.Json.Serialization; namespace SPMS.Domain.Common; public class ApiResponse { [JsonPropertyName("result")] public bool Result { get; init; } [JsonPropertyName("code")] public string Code { get; init; } = ErrorCodes.Success; [JsonPropertyName("msg")] public string Msg { get; init; } = string.Empty; public static ApiResponse Success() => new() { Result = true, Code = ErrorCodes.Success }; public static ApiResponse Fail(string code, string msg) => new() { Result = false, Code = code, Msg = msg }; } public class ApiResponse : ApiResponse { [JsonPropertyName("data")] public T? Data { get; init; } public static ApiResponse Success(T data) => new() { Result = true, Code = ErrorCodes.Success, Data = data }; public new static ApiResponse Fail(string code, string msg) => new() { Result = false, Code = code, Msg = msg }; }