add architecture skeleton

This commit is contained in:
2026-04-19 13:12:04 +03:00
parent 312708531f
commit 2738f31f26
84 changed files with 2710 additions and 70 deletions
@@ -0,0 +1,6 @@
namespace GymLogAI.Application.Interfaces;
public interface IEmbeddingService
{
Task<float[]> GenerateEmbeddingAsync(string input, CancellationToken cancellationToken);
}
@@ -0,0 +1,10 @@
using GymLogAI.Core.Entities;
namespace GymLogAI.Application.Interfaces;
public interface IExerciseRepository
{
Task<Exercise?> GetByNameAsync(string name, CancellationToken cancellationToken);
Task<Exercise> AddAsync(Exercise exercise, CancellationToken cancellationToken);
Task<Exercise> UpdateAsync(Exercise exercise, CancellationToken cancellationToken);
}
@@ -0,0 +1,11 @@
using GymLogAI.Core.Entities;
namespace GymLogAI.Application.Interfaces;
public interface ITelegramMessageRepository
{
Task<TelegramMessage> AddAsync(TelegramMessage message, CancellationToken cancellationToken);
Task<TelegramMessage?> GetByIdAsync(Guid id, CancellationToken cancellationToken);
Task<IReadOnlyCollection<TelegramMessage>> GetPendingAsync(int take, CancellationToken cancellationToken);
Task<TelegramMessage> UpdateAsync(TelegramMessage message, CancellationToken cancellationToken);
}
@@ -0,0 +1,11 @@
using GymLogAI.Core.Entities;
namespace GymLogAI.Application.Interfaces;
public interface IUserRepository
{
Task<User?> GetByIdAsync(Guid id, CancellationToken cancellationToken);
Task<User?> GetByTelegramUserIdAsync(long telegramUserId, CancellationToken cancellationToken);
Task<User> AddAsync(User user, CancellationToken cancellationToken);
Task<User> UpdateAsync(User user, CancellationToken cancellationToken);
}
@@ -0,0 +1,8 @@
using GymLogAI.Application.DTOs;
namespace GymLogAI.Application.Interfaces;
public interface IWorkoutParser
{
Task<ParsedWorkoutDto?> ParseAsync(string text, CancellationToken cancellationToken);
}
@@ -0,0 +1,12 @@
using GymLogAI.Application.DTOs;
using GymLogAI.Core.Entities;
namespace GymLogAI.Application.Interfaces;
public interface IWorkoutRecommendationGenerator
{
Task<WorkoutRecommendationDto> GenerateAsync(
WorkoutRecommendationContext context,
IReadOnlyCollection<Workout> workoutHistory,
CancellationToken cancellationToken);
}
@@ -0,0 +1,9 @@
using GymLogAI.Core.Entities;
namespace GymLogAI.Application.Interfaces;
public interface IWorkoutRepository
{
Task<Workout> AddAsync(Workout workout, CancellationToken cancellationToken);
Task<IReadOnlyCollection<Workout>> GetHistoryAsync(Guid userId, CancellationToken cancellationToken);
}