Invitation globale work

+ tests
+ new services
+ InvitationDto and IInvitationReqest
This commit is contained in:
Artemy
2025-06-24 21:20:43 +07:00
parent f99ec0b17b
commit 76094af15b
38 changed files with 483 additions and 1640 deletions
@@ -0,0 +1,6 @@
namespace Govor.API.Services.AdminsStuff.Interfaces;
public interface IInvitationGenerator
{
public Task<string> GenerateInvitationCode(DateTime time, int maxUsers, bool isAdmin, string description = "");
}
@@ -0,0 +1,26 @@
using Govor.API.Services.AdminsStuff.Interfaces;
using Govor.Core.Models;
using Govor.Core.Repositories.Invaites;
namespace Govor.API.Services.AdminsStuff;
public class InvitationGenerator(IInvitesRepository repository) : IInvitationGenerator
{
public async Task<string> GenerateInvitationCode(DateTime time, int maxUsers, bool isAdmin, string description = "")
{
Invitation newInvitation = new Invitation()
{
Id = Guid.NewGuid(),
Description = description,
MaxParticipants = maxUsers,
DateCreated = DateTime.UtcNow,
EndDate = time.ToUniversalTime(),
Code = Guid.NewGuid().ToString("N"),
IsAdmin = isAdmin
};
await repository.AddAsync(newInvitation);
return newInvitation.Code;
}
}