@vendure/core
Version:
A modern, headless ecommerce framework
53 lines (52 loc) • 2.95 kB
TypeScript
import { CreateProductOptionGroupInput, DeletionResult, UpdateProductOptionGroupInput } from '@vendure/common/lib/generated-types';
import { ID } from '@vendure/common/lib/shared-types';
import { RequestContext } from '../../api/common/request-context';
import { RelationPaths } from '../../api/decorators/relations.decorator';
import { Translated } from '../../common/types/locale-types';
import { TransactionalConnection } from '../../connection/transactional-connection';
import { ProductOptionGroup } from '../../entity/product-option-group/product-option-group.entity';
import { EventBus } from '../../event-bus';
import { CustomFieldRelationService } from '../helpers/custom-field-relation/custom-field-relation.service';
import { TranslatableSaver } from '../helpers/translatable-saver/translatable-saver';
import { TranslatorService } from '../helpers/translator/translator.service';
import { ProductOptionService } from './product-option.service';
/**
* @description
* Contains methods relating to {@link ProductOptionGroup} entities.
*
* @docsCategory services
*/
export declare class ProductOptionGroupService {
private connection;
private translatableSaver;
private customFieldRelationService;
private productOptionService;
private eventBus;
private translator;
constructor(connection: TransactionalConnection, translatableSaver: TranslatableSaver, customFieldRelationService: CustomFieldRelationService, productOptionService: ProductOptionService, eventBus: EventBus, translator: TranslatorService);
findAll(ctx: RequestContext, filterTerm?: string, relations?: RelationPaths<ProductOptionGroup>): Promise<Array<Translated<ProductOptionGroup>>>;
findOne(ctx: RequestContext, id: ID, relations?: RelationPaths<ProductOptionGroup>, findOneOptions?: {
includeSoftDeleted: boolean;
}): Promise<Translated<ProductOptionGroup> | undefined>;
getOptionGroupsByProductId(ctx: RequestContext, id: ID): Promise<Array<Translated<ProductOptionGroup>>>;
create(ctx: RequestContext, input: Omit<CreateProductOptionGroupInput, 'options'>): Promise<Translated<ProductOptionGroup>>;
update(ctx: RequestContext, input: UpdateProductOptionGroupInput): Promise<Translated<ProductOptionGroup>>;
/**
* @description
* Deletes the ProductOptionGroup and any associated ProductOptions. If the ProductOptionGroup
* is still referenced by a soft-deleted Product, then a soft-delete will be used to preserve
* referential integrity. Otherwise a hard-delete will be performed.
*/
deleteGroupAndOptionsFromProduct(ctx: RequestContext, id: ID, productId: ID): Promise<{
result: DeletionResult;
message: string;
} | {
result: DeletionResult.NOT_DELETED;
message: string | undefined;
} | {
result: DeletionResult;
message?: undefined;
}>;
private isInUseByOtherProducts;
private groupOptionsAreInUse;
}