add architecture skeleton
This commit is contained in:
@@ -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);
|
||||
}
|
||||
Reference in New Issue
Block a user