OnlineSalesAutoCrop/Api/OnlineSalesAutoCrop.CoreAPI.Models/Responses/ResponseBase.cs

80 lines
2.2 KiB
C#
Raw Normal View History

2026-06-14 12:46:29 +06:00
using OnlineSalesAutoCrop.CoreAPI.Models.Global;
using OnlineSalesAutoCrop.CoreAPI.Models.Objects;
using System;
2026-06-14 12:46:29 +06:00
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
2026-06-14 12:46:29 +06:00
namespace OnlineSalesAutoCrop.CoreAPI.Models.Responses
{
public abstract class ResponseBase
{
public int ReturnStatus { get; set; }
public List<string> ReturnMessage { get; set; } = [];
}
2026-07-07 12:15:19 +06:00
public class MobileResponseBase<T>
{
public int ReturnStatus { get; set; }
public List<string> ReturnMessage { get; set; } = [];
public T? Data { get; set; }
public static MobileResponseBase<T> Success(T data, string message = "Success") =>
new() { ReturnStatus = 200, ReturnMessage = [message], Data = data };
public static MobileResponseBase<T> Failure(string message, int status = 400 ) =>
new() { ReturnStatus = status, ReturnMessage = [message], Data = default };
}
public abstract class TotalRowsResponseBase : ResponseBase
2026-06-14 12:46:29 +06:00
{
public int TotalRows { get; set; }
}
public abstract class ResponseBase1 : ResponseBase
{
public Hashtable ValidationErrors { get; set; } = [];
}
public abstract class BaseObjectResponse : ResponseBase
{
public string Code { get; set; }
public string Name { get; set; }
public EnumStatus Status { get; set; }
public int SeqId { get; set; }
public string StatusDetail => Status.GetDescription();
}
public class BooleanResponse : ResponseBase
{
public bool Value { get; set; }
}
public class StringResponse : ResponseBase
{
public string Value { get; set; }
}
public class IntResponse : ResponseBase
{
public int Value { get; set; }
}
public class KeywordsFromAudioResponse : ResponseBase
{
public List<FoundKeywordItem> FoundKeywords { get; set; }
}
public class PagedResult<T>
{
public IList<T> Items { get; set; } = [];
public int TotalCount { get; set; }
public int PageNumber { get; set; } = 1;
public int PageSize { get; set; } = 10000;
public int TotalPages => (int)Math.Ceiling((double)TotalCount / PageSize);
public bool HasNextPage => PageNumber < TotalPages;
public bool HasPreviousPage => PageNumber > 1;
}
2026-06-14 12:46:29 +06:00
}