Add submission CRUD with pagination and role scoping, challenge/location binding, automatic keyword extraction, a validated status workflow, and domain events for matchmaking and notifications. Create a problem record together with each submission.
29 lines
758 B
C#
29 lines
758 B
C#
using TarninaHub.Application.Dtos;
|
|
|
|
namespace TarninaHub.Application.Abstractions;
|
|
|
|
public interface ISubmissionService
|
|
{
|
|
Task<SubmissionResponse> CreateAsync(
|
|
string authorId,
|
|
CreateSubmissionRequest request,
|
|
CancellationToken cancellationToken);
|
|
|
|
Task<PagedResponse<SubmissionResponse>> ListAsync(
|
|
string viewerId,
|
|
bool isStaff,
|
|
string? status,
|
|
int page,
|
|
int pageSize,
|
|
CancellationToken cancellationToken);
|
|
|
|
Task<SubmissionResponse?> GetAsync(
|
|
string submissionId,
|
|
CancellationToken cancellationToken);
|
|
|
|
Task<SubmissionResponse?> UpdateStatusAsync(
|
|
string submissionId,
|
|
string newStatus,
|
|
CancellationToken cancellationToken);
|
|
}
|