초기커밋

This commit is contained in:
2025-05-01 07:20:41 +09:00
commit 98bb2e3c5c
2747 changed files with 646947 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
using MongoDB.Bson;
using MongoDB.Driver;
using System.Linq.Expressions;
using UGQDataAccess.Repository.Models;
using UGQDatabase.Models;
public static class ReserveAccountGradeQuery
{
public class AllReserveAccountGradeQueryJoin : ReserveAccountGradeEntity
{
public IEnumerable<AccountEntity> Accounts { get; set; } = null!;
}
public static Expression<Func<AllReserveAccountGradeQueryJoin, ReserveAccountGradeItemResult>> ReserveAccountGradeItemResultProjection =
x => new ReserveAccountGradeItemResult
{
ReserveId = x.Id.ToString(),
UserGuid = x.UserGuid,
CurrentGradeType = x.BeforeGradeType,
AccountId = x.Accounts.First().AccountId ?? string.Empty,
ReserveGradeType = x.ReserveGradeType,
ReserveTime = x.ReserveTime,
UpdatedAt = x.UpdatedAt,
IsCompleted = x.IsCompleted,
};
public static PipelineDefinition<ReserveAccountGradeEntity, T> allReserveAccountGradePipeline<T>(
FilterDefinition<ReserveAccountGradeEntity> filter,
Expression<Func<AllReserveAccountGradeQueryJoin, T>> projection)
{
var lookupStage1 = new BsonDocument("$lookup",
new BsonDocument
{
{ "from", "Account" },
{ "localField", "UserGuid" },
{ "foreignField", "UserGuid" },
{ "as", "Accounts" }
});
var pipeline = new EmptyPipelineDefinition<ReserveAccountGradeEntity>()
.Match(filter)
.AppendStage<ReserveAccountGradeEntity, ReserveAccountGradeEntity, AllReserveAccountGradeQueryJoin>(lookupStage1)
.Project(projection);
return pipeline;
}
}