first commit

This commit is contained in:
2026-02-26 14:04:18 +07:00
parent 57ac80a666
commit 4b7236493f
92 changed files with 4999 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
namespace MyNewProjectName.Contracts.DTOs.Requests;
/// <summary>
/// Request to create a sample
/// </summary>
public class CreateSampleRequest
{
public string Name { get; set; } = string.Empty;
public string? Description { get; set; }
}

View File

@@ -0,0 +1,13 @@
namespace MyNewProjectName.Contracts.DTOs.Requests;
/// <summary>
/// Base request for paginated queries
/// </summary>
public class PaginatedRequest
{
public int PageNumber { get; set; } = 1;
public int PageSize { get; set; } = 10;
public string? SearchTerm { get; set; }
public string? SortBy { get; set; }
public bool SortDescending { get; set; } = false;
}

View File

@@ -0,0 +1,68 @@
namespace MyNewProjectName.Contracts.DTOs.Responses;
/// <summary>
/// Standard API response wrapper
/// </summary>
public class ApiResponse<T>
{
public bool Success { get; set; }
public string? Message { get; set; }
public T? Data { get; set; }
public List<string>? Errors { get; set; }
public static ApiResponse<T> SuccessResponse(T data, string? message = null)
{
return new ApiResponse<T>
{
Success = true,
Data = data,
Message = message
};
}
public static ApiResponse<T> ErrorResponse(string error)
{
return new ApiResponse<T>
{
Success = false,
Errors = new List<string> { error }
};
}
public static ApiResponse<T> ErrorResponse(List<string> errors)
{
return new ApiResponse<T>
{
Success = false,
Errors = errors
};
}
}
/// <summary>
/// Non-generic API response
/// </summary>
public class ApiResponse
{
public bool Success { get; set; }
public string? Message { get; set; }
public List<string>? Errors { get; set; }
public static ApiResponse SuccessResponse(string? message = null)
{
return new ApiResponse
{
Success = true,
Message = message
};
}
public static ApiResponse ErrorResponse(string error)
{
return new ApiResponse
{
Success = false,
Errors = new List<string> { error }
};
}
}

View File

@@ -0,0 +1,14 @@
namespace MyNewProjectName.Contracts.DTOs.Responses;
/// <summary>
/// Paginated response wrapper
/// </summary>
public class PaginatedResponse<T>
{
public List<T> Items { get; set; } = new();
public int PageNumber { get; set; }
public int TotalPages { get; set; }
public int TotalCount { get; set; }
public bool HasPreviousPage { get; set; }
public bool HasNextPage { get; set; }
}

View File

@@ -0,0 +1,13 @@
namespace MyNewProjectName.Contracts.DTOs.Responses;
/// <summary>
/// Sample response DTO
/// </summary>
public class SampleResponse
{
public Guid Id { get; set; }
public string Name { get; set; } = string.Empty;
public string? Description { get; set; }
public bool IsActive { get; set; }
public DateTime CreatedAt { get; set; }
}