diff --git a/services/inventory-service-net/src/InventoryService.Domain/AggregatesModel/SampleAggregate/ISampleRepository.cs b/services/inventory-service-net/src/InventoryService.Domain/AggregatesModel/SampleAggregate/ISampleRepository.cs
deleted file mode 100644
index 15e08ad5..00000000
--- a/services/inventory-service-net/src/InventoryService.Domain/AggregatesModel/SampleAggregate/ISampleRepository.cs
+++ /dev/null
@@ -1,61 +0,0 @@
-using InventoryService.Domain.SeedWork;
-
-namespace InventoryService.Domain.AggregatesModel.SampleAggregate;
-
-///
-/// EN: Repository interface for Sample aggregate.
-/// VI: Interface repository cho Sample aggregate.
-///
-///
-/// EN: Following repository pattern, this interface defines the contract
-/// for data access operations on Sample aggregate.
-/// VI: Theo pattern repository, interface này định nghĩa contract
-/// cho các thao tác truy cập dữ liệu trên Sample aggregate.
-///
-public interface ISampleRepository : IRepository
-{
- ///
- /// EN: Get a sample by its ID.
- /// VI: Lấy một sample theo ID.
- ///
- /// EN: The sample ID / VI: ID của sample
- /// EN: The sample or null if not found / VI: Sample hoặc null nếu không tìm thấy
- Task GetAsync(Guid sampleId);
-
- ///
- /// EN: Get all samples.
- /// VI: Lấy tất cả samples.
- ///
- /// EN: List of samples / VI: Danh sách samples
- Task> GetAllAsync();
-
- ///
- /// EN: Add a new sample.
- /// VI: Thêm một sample mới.
- ///
- /// EN: The sample to add / VI: Sample cần thêm
- /// EN: The added sample / VI: Sample đã thêm
- Sample Add(Sample sample);
-
- ///
- /// EN: Update an existing sample.
- /// VI: Cập nhật một sample đã tồn tại.
- ///
- /// EN: The sample to update / VI: Sample cần cập nhật
- void Update(Sample sample);
-
- ///
- /// EN: Delete a sample.
- /// VI: Xóa một sample.
- ///
- /// EN: The sample to delete / VI: Sample cần xóa
- void Delete(Sample sample);
-
- ///
- /// EN: Get samples by status.
- /// VI: Lấy samples theo trạng thái.
- ///
- /// EN: The status ID / VI: ID trạng thái
- /// EN: List of samples with given status / VI: Danh sách samples với trạng thái cho trước
- Task> GetByStatusAsync(int statusId);
-}
diff --git a/services/inventory-service-net/src/InventoryService.Domain/AggregatesModel/SampleAggregate/Sample.cs b/services/inventory-service-net/src/InventoryService.Domain/AggregatesModel/SampleAggregate/Sample.cs
deleted file mode 100644
index d31a53f8..00000000
--- a/services/inventory-service-net/src/InventoryService.Domain/AggregatesModel/SampleAggregate/Sample.cs
+++ /dev/null
@@ -1,158 +0,0 @@
-using InventoryService.Domain.Events;
-using InventoryService.Domain.Exceptions;
-using InventoryService.Domain.SeedWork;
-
-namespace InventoryService.Domain.AggregatesModel.SampleAggregate;
-
-///
-/// EN: Sample aggregate root demonstrating DDD patterns.
-/// VI: Sample aggregate root minh họa các pattern DDD.
-///
-public class Sample : Entity, IAggregateRoot
-{
- // EN: Private fields for encapsulation
- // VI: Fields private để đóng gói
- private string _name = null!;
- private string? _description;
- private SampleStatus _status = null!;
- private DateTime _createdAt;
- private DateTime? _updatedAt;
-
- ///
- /// EN: Sample name (required).
- /// VI: Tên sample (bắt buộc).
- ///
- public string Name => _name;
-
- ///
- /// EN: Optional description.
- /// VI: Mô tả tùy chọn.
- ///
- public string? Description => _description;
-
- ///
- /// EN: Current status.
- /// VI: Trạng thái hiện tại.
- ///
- public SampleStatus Status => _status;
-
- ///
- /// EN: Status ID for EF Core mapping.
- /// VI: ID trạng thái cho EF Core mapping.
- ///
- public int StatusId { get; private set; }
-
- ///
- /// EN: Creation timestamp.
- /// VI: Thời gian tạo.
- ///
- public DateTime CreatedAt => _createdAt;
-
- ///
- /// EN: Last update timestamp.
- /// VI: Thời gian cập nhật cuối.
- ///
- public DateTime? UpdatedAt => _updatedAt;
-
- ///
- /// EN: Private constructor for EF Core.
- /// VI: Constructor private cho EF Core.
- ///
- protected Sample()
- {
- }
-
- ///
- /// EN: Create a new Sample with required information.
- /// VI: Tạo một Sample mới với thông tin bắt buộc.
- ///
- /// EN: Sample name / VI: Tên sample
- /// EN: Optional description / VI: Mô tả tùy chọn
- public Sample(string name, string? description = null) : this()
- {
- if (string.IsNullOrWhiteSpace(name))
- throw new SampleDomainException("Sample name cannot be empty");
-
- Id = Guid.NewGuid();
- _name = name;
- _description = description;
- _status = SampleStatus.Draft;
- StatusId = SampleStatus.Draft.Id;
- _createdAt = DateTime.UtcNow;
-
- // EN: Add domain event for creation
- // VI: Thêm domain event cho việc tạo
- AddDomainEvent(new SampleCreatedDomainEvent(this));
- }
-
- ///
- /// EN: Update sample information.
- /// VI: Cập nhật thông tin sample.
- ///
- public void Update(string name, string? description)
- {
- if (string.IsNullOrWhiteSpace(name))
- throw new SampleDomainException("Sample name cannot be empty");
-
- if (_status == SampleStatus.Cancelled)
- throw new SampleDomainException("Cannot update a cancelled sample");
-
- _name = name;
- _description = description;
- _updatedAt = DateTime.UtcNow;
- }
-
- ///
- /// EN: Activate the sample.
- /// VI: Kích hoạt sample.
- ///
- public void Activate()
- {
- if (_status != SampleStatus.Draft)
- throw new SampleDomainException("Only draft samples can be activated");
-
- var previousStatus = _status;
- _status = SampleStatus.Active;
- StatusId = SampleStatus.Active.Id;
- _updatedAt = DateTime.UtcNow;
-
- AddDomainEvent(new SampleStatusChangedDomainEvent(Id, previousStatus, _status));
- }
-
- ///
- /// EN: Complete the sample.
- /// VI: Hoàn thành sample.
- ///
- public void Complete()
- {
- if (_status != SampleStatus.Active)
- throw new SampleDomainException("Only active samples can be completed");
-
- var previousStatus = _status;
- _status = SampleStatus.Completed;
- StatusId = SampleStatus.Completed.Id;
- _updatedAt = DateTime.UtcNow;
-
- AddDomainEvent(new SampleStatusChangedDomainEvent(Id, previousStatus, _status));
- }
-
- ///
- /// EN: Cancel the sample.
- /// VI: Hủy sample.
- ///
- public void Cancel()
- {
- if (_status == SampleStatus.Completed)
- throw new SampleDomainException("Cannot cancel a completed sample");
-
- if (_status == SampleStatus.Cancelled)
- throw new SampleDomainException("Sample is already cancelled");
-
- var previousStatus = _status;
- _status = SampleStatus.Cancelled;
- StatusId = SampleStatus.Cancelled.Id;
- _updatedAt = DateTime.UtcNow;
-
- AddDomainEvent(new SampleStatusChangedDomainEvent(Id, previousStatus, _status));
- }
-}
diff --git a/services/inventory-service-net/src/InventoryService.Domain/AggregatesModel/SampleAggregate/SampleStatus.cs b/services/inventory-service-net/src/InventoryService.Domain/AggregatesModel/SampleAggregate/SampleStatus.cs
deleted file mode 100644
index 6732738f..00000000
--- a/services/inventory-service-net/src/InventoryService.Domain/AggregatesModel/SampleAggregate/SampleStatus.cs
+++ /dev/null
@@ -1,77 +0,0 @@
-using InventoryService.Domain.SeedWork;
-
-namespace InventoryService.Domain.AggregatesModel.SampleAggregate;
-
-///
-/// EN: Sample status enumeration following type-safe enum pattern.
-/// VI: Enumeration trạng thái Sample theo pattern enum an toàn kiểu.
-///
-public class SampleStatus : Enumeration
-{
- ///
- /// EN: Draft status - initial state
- /// VI: Trạng thái nháp - trạng thái ban đầu
- ///
- public static SampleStatus Draft = new(1, nameof(Draft));
-
- ///
- /// EN: Active status - ready for use
- /// VI: Trạng thái hoạt động - sẵn sàng sử dụng
- ///
- public static SampleStatus Active = new(2, nameof(Active));
-
- ///
- /// EN: Completed status - finished processing
- /// VI: Trạng thái hoàn thành - đã xử lý xong
- ///
- public static SampleStatus Completed = new(3, nameof(Completed));
-
- ///
- /// EN: Cancelled status - cancelled by user
- /// VI: Trạng thái đã hủy - bị hủy bởi người dùng
- ///
- public static SampleStatus Cancelled = new(4, nameof(Cancelled));
-
- public SampleStatus(int id, string name) : base(id, name)
- {
- }
-
- ///
- /// EN: Get all available statuses.
- /// VI: Lấy tất cả các trạng thái có sẵn.
- ///
- public static IEnumerable List() => GetAll();
-
- ///
- /// EN: Parse status from name.
- /// VI: Parse trạng thái từ tên.
- ///
- public static SampleStatus FromName(string name)
- {
- var status = List().SingleOrDefault(s =>
- string.Equals(s.Name, name, StringComparison.CurrentCultureIgnoreCase));
-
- if (status is null)
- {
- throw new ArgumentException($"Possible values for SampleStatus: {string.Join(",", List().Select(s => s.Name))}");
- }
-
- return status;
- }
-
- ///
- /// EN: Parse status from ID.
- /// VI: Parse trạng thái từ ID.
- ///
- public static SampleStatus From(int id)
- {
- var status = List().SingleOrDefault(s => s.Id == id);
-
- if (status is null)
- {
- throw new ArgumentException($"Possible values for SampleStatus: {string.Join(",", List().Select(s => s.Name))}");
- }
-
- return status;
- }
-}
diff --git a/services/inventory-service-net/src/InventoryService.Domain/Events/SampleCreatedDomainEvent.cs b/services/inventory-service-net/src/InventoryService.Domain/Events/SampleCreatedDomainEvent.cs
deleted file mode 100644
index 8719ba61..00000000
--- a/services/inventory-service-net/src/InventoryService.Domain/Events/SampleCreatedDomainEvent.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using MediatR;
-using InventoryService.Domain.AggregatesModel.SampleAggregate;
-
-namespace InventoryService.Domain.Events;
-
-///
-/// EN: Domain event raised when a new Sample is created.
-/// VI: Domain event được phát ra khi một Sample mới được tạo.
-///
-public class SampleCreatedDomainEvent : INotification
-{
- ///
- /// EN: The newly created sample.
- /// VI: Sample mới được tạo.
- ///
- public Sample Sample { get; }
-
- public SampleCreatedDomainEvent(Sample sample)
- {
- Sample = sample;
- }
-}
diff --git a/services/inventory-service-net/src/InventoryService.Domain/Events/SampleStatusChangedDomainEvent.cs b/services/inventory-service-net/src/InventoryService.Domain/Events/SampleStatusChangedDomainEvent.cs
deleted file mode 100644
index c647f968..00000000
--- a/services/inventory-service-net/src/InventoryService.Domain/Events/SampleStatusChangedDomainEvent.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-using MediatR;
-using InventoryService.Domain.AggregatesModel.SampleAggregate;
-
-namespace InventoryService.Domain.Events;
-
-///
-/// EN: Domain event raised when Sample status changes.
-/// VI: Domain event được phát ra khi trạng thái Sample thay đổi.
-///
-public class SampleStatusChangedDomainEvent : INotification
-{
- ///
- /// EN: The sample ID.
- /// VI: ID của sample.
- ///
- public Guid SampleId { get; }
-
- ///
- /// EN: Previous status before the change.
- /// VI: Trạng thái trước khi thay đổi.
- ///
- public SampleStatus PreviousStatus { get; }
-
- ///
- /// EN: New status after the change.
- /// VI: Trạng thái mới sau khi thay đổi.
- ///
- public SampleStatus NewStatus { get; }
-
- public SampleStatusChangedDomainEvent(
- Guid sampleId,
- SampleStatus previousStatus,
- SampleStatus newStatus)
- {
- SampleId = sampleId;
- PreviousStatus = previousStatus;
- NewStatus = newStatus;
- }
-}
diff --git a/services/inventory-service-net/src/InventoryService.Domain/Exceptions/SampleDomainException.cs b/services/inventory-service-net/src/InventoryService.Domain/Exceptions/SampleDomainException.cs
deleted file mode 100644
index d5185c24..00000000
--- a/services/inventory-service-net/src/InventoryService.Domain/Exceptions/SampleDomainException.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-namespace InventoryService.Domain.Exceptions;
-
-///
-/// EN: Exception for Sample aggregate domain errors.
-/// VI: Exception cho các lỗi domain của Sample aggregate.
-///
-public class SampleDomainException : DomainException
-{
- public SampleDomainException()
- {
- }
-
- public SampleDomainException(string message) : base(message)
- {
- }
-
- public SampleDomainException(string message, Exception innerException)
- : base(message, innerException)
- {
- }
-}
diff --git a/services/inventory-service-net/src/InventoryService.Infrastructure/EntityConfigurations/InventoryItemEntityTypeConfiguration.cs b/services/inventory-service-net/src/InventoryService.Infrastructure/EntityConfigurations/InventoryItemEntityTypeConfiguration.cs
index 8faf27dc..cbd98533 100644
--- a/services/inventory-service-net/src/InventoryService.Infrastructure/EntityConfigurations/InventoryItemEntityTypeConfiguration.cs
+++ b/services/inventory-service-net/src/InventoryService.Infrastructure/EntityConfigurations/InventoryItemEntityTypeConfiguration.cs
@@ -49,10 +49,10 @@ public class InventoryItemEntityTypeConfiguration : IEntityTypeConfiguration i.ProductId);
builder.Ignore(i => i.ShopId);
- builder.Ignore(i => i.QuantityOnHand);
- builder.Ignore(i => i.ReservedQuantity);
- builder.Ignore(i => i.AvailableQuantity);
- builder.Ignore(i => i.ReorderLevel);
+ builder.Ignore(i => i.Quantity);
+ builder.Ignore(i => i.Reserved);
+ builder.Ignore(i => i.Available);
+ builder.Ignore(i => i.ReorderPoint);
builder.Ignore(i => i.UpdatedAt);
}
}