File size: 930 Bytes
7535af1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using System.Collections.Generic;
using System.Threading.Tasks;
using MongoDB.Driver;
using TelegramSaaS.Application.Common.Interfaces.Persistence;
using TelegramSaaS.Domain.Entities;

namespace TelegramSaaS.Infrastructure.Persistence.Repositories;

public class GenerationJobRepository : MongoRepository<GenerationJob>, IGenerationJobRepository
{
    public GenerationJobRepository(MongoDbContext context) : base(context, "GenerationJobs")
    {
    }

    public async Task<IEnumerable<GenerationJob>> GetJobsByUserIdAsync(string userId, int limit = 20)
    {
        return await Collection.Find(x => x.UserId == userId)
            .SortByDescending(x => x.CreatedAt)
            .Limit(limit)
            .ToListAsync();
    }

    public async Task<GenerationJob?> GetByProviderJobIdAsync(string providerJobId)
    {
        return await Collection.Find(x => x.ProviderJobId == providerJobId).FirstOrDefaultAsync();
    }
}