Changes: - Remove deprecated Fengling.Activity and YarpGateway.Admin projects - Add points processing services with distributed lock support - Update Vben frontend with gateway management pages - Add gateway config controller and database listener - Update routing to use header-mixed-nav layout - Add comprehensive test suites for Member services - Add YarpGateway integration tests - Update package versions in Directory.Packages.props Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
20 lines
1.4 KiB
C#
20 lines
1.4 KiB
C#
namespace Fengling.Activity.Domain.Repositories;
|
|
|
|
using Fengling.Activity.Domain.Aggregates.Campaigns;
|
|
using Fengling.Activity.Domain.Aggregates.ParticipationRecords;
|
|
using Fengling.Activity.Domain.Enums;
|
|
using Fengling.Activity.Domain.ValueObjects;
|
|
|
|
public interface IParticipationRecordRepository
|
|
{
|
|
Task<ParticipationRecord?> GetByIdAsync(ParticipationRecordId id, CancellationToken cancellationToken = default);
|
|
Task<List<ParticipationRecord>> GetByCampaignIdAsync(CampaignId campaignId, CancellationToken cancellationToken = default);
|
|
Task<List<ParticipationRecord>> GetByMemberIdAsync(TenantId tenantId, Guid memberId, CancellationToken cancellationToken = default);
|
|
Task<ParticipationRecord?> GetByCampaignAndMemberAsync(CampaignId campaignId, Guid memberId, CancellationToken cancellationToken = default);
|
|
Task<List<ParticipationRecord>> GetByStatusAsync(CampaignId campaignId, ParticipationStatus status, CancellationToken cancellationToken = default);
|
|
Task<int> GetParticipationCountAsync(CampaignId campaignId, Guid memberId, CancellationToken cancellationToken = default);
|
|
Task AddAsync(ParticipationRecord record, CancellationToken cancellationToken = default);
|
|
Task UpdateAsync(ParticipationRecord record, CancellationToken cancellationToken = default);
|
|
Task DeleteAsync(ParticipationRecord record, CancellationToken cancellationToken = default);
|
|
}
|