feat(product): implement sprint 9 product engagement module

This commit is contained in:
sdarbinyan
2026-07-09 00:45:36 +04:00
parent 10251f2fc6
commit 3ef0bd711d
59 changed files with 2060 additions and 74 deletions

View File

@@ -9,6 +9,7 @@ import {
ProductSearchQuery,
RelatedProductsQuery,
} from '../../core/products/models/product-domain.model';
import { EngagementListQuery, EngagementListResult, Question, RatingSummary, Review, SubmitQuestionInput, SubmitReviewInput } from '../../core/products/models/product-engagement.model';
@Injectable({ providedIn: 'root' })
export class ProductFacade {
@@ -45,4 +46,24 @@ export class ProductFacade {
getRelatedProducts(query: RelatedProductsQuery): Observable<ProductListResult> {
return this.productData.getRelatedProducts(query);
}
loadRating(productID: number): Observable<RatingSummary> {
return this.productData.loadRating(productID);
}
loadReviews(productID: number, query?: EngagementListQuery): Observable<EngagementListResult<Review>> {
return this.productData.loadReviews(productID, query);
}
loadQuestions(productID: number, query?: EngagementListQuery): Observable<EngagementListResult<Question>> {
return this.productData.loadQuestions(productID, query);
}
submitReview(productID: number, input: SubmitReviewInput): Observable<void> {
return this.productData.submitReview(productID, input);
}
submitQuestion(productID: number, input: SubmitQuestionInput): Observable<void> {
return this.productData.submitQuestion(productID, input);
}
}