@devx-commerce/plugin-product-reviews
Version:
Product Reviews Plugin for Medusa
120 lines (119 loc) • 12.5 kB
TypeScript
import { Context } from "@medusajs/framework/types";
import { ProductReviewStats } from "./types";
interface CalculatedProductReviewStats {
product_id: string;
review_count: number;
average_rating: number;
rating_count_1: number;
rating_count_2: number;
rating_count_3: number;
rating_count_4: number;
rating_count_5: number;
}
declare const ProductReviewService_base: import("@medusajs/framework/utils").MedusaServiceReturnType<import("@medusajs/framework/utils").ModelConfigurationsToConfigTemplate<{
readonly ProductReview: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
name: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
email: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
phone: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
rating: import("@medusajs/framework/utils").NumberProperty;
title: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
description: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
product_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
associated_medias: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
url: import("@medusajs/framework/utils").TextProperty;
type: import("@medusajs/framework/utils").EnumProperty<["IMAGE", "VIDEO"]>;
product_review: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "product_review">, undefined>;
}>, "review_associated_media">>;
response: import("@medusajs/framework/utils").RelationNullableModifier<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
content: import("@medusajs/framework/utils").TextProperty;
admin_user_id: import("@medusajs/framework/utils").TextProperty;
product_review: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "product_review">, undefined>;
}>, "product_review_response">, import("@medusajs/framework/utils").HasOne<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
content: import("@medusajs/framework/utils").TextProperty;
admin_user_id: import("@medusajs/framework/utils").TextProperty;
product_review: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "product_review">, undefined>;
}>, "product_review_response">>, false>;
is_verified_purchase: import("@medusajs/framework/utils").BooleanProperty;
is_admin_verified: import("@medusajs/framework/utils").BooleanProperty;
}>, "product_review">;
readonly ProductReviewResponse: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
content: import("@medusajs/framework/utils").TextProperty;
admin_user_id: import("@medusajs/framework/utils").TextProperty;
product_review: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
name: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
email: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
phone: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
rating: import("@medusajs/framework/utils").NumberProperty;
title: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
description: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
product_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
associated_medias: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
url: import("@medusajs/framework/utils").TextProperty;
type: import("@medusajs/framework/utils").EnumProperty<["IMAGE", "VIDEO"]>;
product_review: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "product_review">, undefined>;
}>, "review_associated_media">>;
response: import("@medusajs/framework/utils").RelationNullableModifier<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "product_review_response">, import("@medusajs/framework/utils").HasOne<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "product_review_response">>, false>;
is_verified_purchase: import("@medusajs/framework/utils").BooleanProperty;
is_admin_verified: import("@medusajs/framework/utils").BooleanProperty;
}>, "product_review">, undefined>;
}>, "product_review_response">;
readonly ProductReviewStats: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
product_id: import("@medusajs/framework/utils").TextProperty;
average_rating: import("@medusajs/framework/utils").NullableModifier<number, import("@medusajs/framework/utils").NumberProperty>;
review_count: import("@medusajs/framework/utils").NumberProperty;
rating_count_1: import("@medusajs/framework/utils").NumberProperty;
rating_count_2: import("@medusajs/framework/utils").NumberProperty;
rating_count_3: import("@medusajs/framework/utils").NumberProperty;
rating_count_4: import("@medusajs/framework/utils").NumberProperty;
rating_count_5: import("@medusajs/framework/utils").NumberProperty;
}>, "product_review_stats">;
readonly ReviewAssociatedMedia: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
url: import("@medusajs/framework/utils").TextProperty;
type: import("@medusajs/framework/utils").EnumProperty<["IMAGE", "VIDEO"]>;
product_review: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
name: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
email: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
phone: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
rating: import("@medusajs/framework/utils").NumberProperty;
title: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
description: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
product_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
associated_medias: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "review_associated_media">>;
response: import("@medusajs/framework/utils").RelationNullableModifier<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
content: import("@medusajs/framework/utils").TextProperty;
admin_user_id: import("@medusajs/framework/utils").TextProperty;
product_review: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "product_review">, undefined>;
}>, "product_review_response">, import("@medusajs/framework/utils").HasOne<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
content: import("@medusajs/framework/utils").TextProperty;
admin_user_id: import("@medusajs/framework/utils").TextProperty;
product_review: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "product_review">, undefined>;
}>, "product_review_response">>, false>;
is_verified_purchase: import("@medusajs/framework/utils").BooleanProperty;
is_admin_verified: import("@medusajs/framework/utils").BooleanProperty;
}>, "product_review">, undefined>;
}>, "review_associated_media">;
readonly ProductReviewConfig: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
key: import("@medusajs/framework/utils").TextProperty;
value: import("@medusajs/framework/utils").BooleanProperty;
}>, "product_review_config">;
}>>;
declare class ProductReviewService extends ProductReviewService_base {
constructor(container: any);
protected ensureDefaultConfigs(): Promise<void>;
refreshProductReviewStats(productIds: string[], sharedContext?: Context): Promise<ProductReviewStats[]>;
calculateProductReviewStats(productIds: string[], sharedContext?: Context): Promise<CalculatedProductReviewStats[]>;
}
export default ProductReviewService;