diff --git a/SPMS.Domain/Common/ApiResponse.cs b/SPMS.Domain/Common/ApiResponse.cs new file mode 100644 index 0000000..35d38c4 --- /dev/null +++ b/SPMS.Domain/Common/ApiResponse.cs @@ -0,0 +1,33 @@ +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 }; +}