add architecture skeleton
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
namespace GymLogAI.Core.Entities;
|
||||
|
||||
public class Exercise
|
||||
{
|
||||
public Guid Id { get; set; }
|
||||
public string Name { get; set; } = string.Empty;
|
||||
public string? Description { get; set; }
|
||||
public float[]? Embedding { get; set; }
|
||||
public DateTime CreatedAtUtc { get; set; }
|
||||
|
||||
public List<WorkoutExercise> WorkoutExercises { get; set; } = [];
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
namespace GymLogAI.Core.Entities;
|
||||
|
||||
public class ExerciseSet
|
||||
{
|
||||
public Guid Id { get; set; }
|
||||
public Guid WorkoutExerciseId { get; set; }
|
||||
public int Order { get; set; }
|
||||
public decimal? WeightKg { get; set; }
|
||||
public int? Repetitions { get; set; }
|
||||
public int? DurationSeconds { get; set; }
|
||||
public decimal? DistanceMeters { get; set; }
|
||||
public string? Notes { get; set; }
|
||||
|
||||
public WorkoutExercise? WorkoutExercise { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
using GymLogAI.Core.Enums;
|
||||
|
||||
namespace GymLogAI.Core.Entities;
|
||||
|
||||
public class TelegramMessage
|
||||
{
|
||||
public Guid Id { get; set; }
|
||||
public Guid UserId { get; set; }
|
||||
public long TelegramChatId { get; set; }
|
||||
public int TelegramMessageId { get; set; }
|
||||
public string Text { get; set; } = string.Empty;
|
||||
public DateTime SentAtUtc { get; set; }
|
||||
public DateTime ImportedAtUtc { get; set; }
|
||||
public ParsingStatus ParsingStatus { get; set; }
|
||||
public string? ParsingError { get; set; }
|
||||
public Guid? WorkoutId { get; set; }
|
||||
public DateTime? ParsedAtUtc { get; set; }
|
||||
|
||||
public User? User { get; set; }
|
||||
public Workout? Workout { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
namespace GymLogAI.Core.Entities;
|
||||
|
||||
public class User
|
||||
{
|
||||
public Guid Id { get; set; }
|
||||
public long TelegramUserId { get; set; }
|
||||
public string? Username { get; set; }
|
||||
public string? FirstName { get; set; }
|
||||
public string? LastName { get; set; }
|
||||
public DateTime CreatedAtUtc { get; set; }
|
||||
|
||||
public List<TelegramMessage> TelegramMessages { get; set; } = [];
|
||||
public List<Workout> Workouts { get; set; } = [];
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
using GymLogAI.Core.Enums;
|
||||
|
||||
namespace GymLogAI.Core.Entities;
|
||||
|
||||
public class Workout
|
||||
{
|
||||
public Guid Id { get; set; }
|
||||
public Guid UserId { get; set; }
|
||||
public Guid? SourceTelegramMessageId { get; set; }
|
||||
public DateTime PerformedAtUtc { get; set; }
|
||||
public string? Title { get; set; }
|
||||
public string? Notes { get; set; }
|
||||
public WorkoutSourceType SourceType { get; set; }
|
||||
public DateTime CreatedAtUtc { get; set; }
|
||||
|
||||
public User? User { get; set; }
|
||||
public TelegramMessage? SourceTelegramMessage { get; set; }
|
||||
public List<WorkoutExercise> WorkoutExercises { get; set; } = [];
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
namespace GymLogAI.Core.Entities;
|
||||
|
||||
public class WorkoutExercise
|
||||
{
|
||||
public Guid Id { get; set; }
|
||||
public Guid WorkoutId { get; set; }
|
||||
public Guid ExerciseId { get; set; }
|
||||
public int Order { get; set; }
|
||||
public string? Notes { get; set; }
|
||||
|
||||
public Workout? Workout { get; set; }
|
||||
public Exercise? Exercise { get; set; }
|
||||
public List<ExerciseSet> Sets { get; set; } = [];
|
||||
}
|
||||
Reference in New Issue
Block a user