Skip to main content

Class: MerchantBuilder

@arolariu/website


@arolariu/website / data/mocks/merchant / MerchantBuilder

Class: MerchantBuilder

Defined in: data/mocks/merchant.ts:61

Fluent builder for creating mock Merchant objects with customizable properties.

Remarks

Design Pattern: Implements the Builder pattern for flexible object construction.

Default Initialization:

  • Random UUIDs for all identifiers
  • Realistic company names from faker.js
  • Random addresses and phone numbers
  • LOCAL_SHOP category as default
  • Non-deleted state (isSoftDeleted: false)

Method Chaining: All with*() methods return this for fluent API usage.

Batch Building: Use buildMany() to create multiple merchants with unique IDs.

Examples

// Basic usage
const merchant = new MerchantBuilder()
.withName("SuperMart")
.withCategory(MerchantCategory.SUPERMARKET)
.withAddress("123 Main St")
.build();
// Merchant chain
const parentId = faker.string.uuid();
const merchants = new MerchantBuilder()
.withParentCompanyId(parentId)
.withCategory(MerchantCategory.RESTAURANT_CHAIN)
.buildMany(5); // 5 locations of same chain

Constructors

Constructor

new MerchantBuilder(): MerchantBuilder

Defined in: data/mocks/merchant.ts:84

Creates a new MerchantBuilder with default random values.

Returns

MerchantBuilder

Remarks

Initialization Strategy:

  • Generates unique UUIDs for all identifiers
  • Uses faker.company.name() for realistic business names
  • Creates fake addresses with street + city format
  • Generates realistic phone numbers
  • Defaults to LOCAL_SHOP category
  • Sets random past/recent timestamps
  • Randomly assigns importance flag

Example

const builder = new MerchantBuilder();
const merchant = builder.build();
// Result: Merchant with random but realistic data

Properties

merchant

private merchant: Merchant

Defined in: data/mocks/merchant.ts:62

Methods

withId()

withId(id): this

Defined in: data/mocks/merchant.ts:121

Sets the unique identifier for the merchant.

Parameters

id

string

Unique identifier (typically UUID format)

Returns

this

The MerchantBuilder instance for method chaining

Example

const merchant = new MerchantBuilder()
.withId("123e4567-e89b-12d3-a456-426614174000")
.build();

withName()

withName(name): this

Defined in: data/mocks/merchant.ts:140

Sets the business/store name for the merchant.

Parameters

name

string

Business name (e.g., "SuperMart", "Joe's Pizza")

Returns

this

The MerchantBuilder instance for method chaining

Example

const merchant = new MerchantBuilder()
.withName("Whole Foods Market")
.build();

withDescription()

withDescription(description): this

Defined in: data/mocks/merchant.ts:158

Sets a detailed description for the merchant.

Parameters

description

string

Merchant description or notes

Returns

this

The MerchantBuilder instance for method chaining

Example

const merchant = new MerchantBuilder()
.withDescription("Organic grocery store specializing in local produce")
.build();

withCreatedAt()

withCreatedAt(date): this

Defined in: data/mocks/merchant.ts:172

Sets when the merchant record was created.

Parameters

date

Date

Creation timestamp

Returns

this

The MerchantBuilder instance for method chaining

Remarks

Useful for testing temporal queries or filtering by creation date.


withCreatedBy()

withCreatedBy(userId): this

Defined in: data/mocks/merchant.ts:184

Sets who created the merchant record.

Parameters

userId

string

Creator's user identifier (UUID format)

Returns

this

The MerchantBuilder instance for method chaining


withLastUpdatedAt()

withLastUpdatedAt(date): this

Defined in: data/mocks/merchant.ts:196

Sets when the merchant record was last modified.

Parameters

date

Date

Last modification timestamp

Returns

this

The MerchantBuilder instance for method chaining


withLastUpdatedBy()

withLastUpdatedBy(userId): this

Defined in: data/mocks/merchant.ts:207

Sets who last modified the merchant record.

Parameters

userId

string

Last updater's user identifier (UUID format)

Returns

this

The MerchantBuilder instance for method chaining


withNumberOfUpdates()

withNumberOfUpdates(count): this

Defined in: data/mocks/merchant.ts:221

Sets how many times the merchant record was updated.

Parameters

count

number

Total number of updates (must be non-negative)

Returns

this

The MerchantBuilder instance for method chaining

Remarks

Useful for testing audit trails or versioning logic.


withIsImportant()

withIsImportant(isImportant): this

Defined in: data/mocks/merchant.ts:231

Marks whether this merchant is important for the user.

Parameters

isImportant

boolean

Flag indicating importance

Returns

this

The MerchantBuilder instance for chaining


withIsSoftDeleted()

withIsSoftDeleted(isSoftDeleted): this

Defined in: data/mocks/merchant.ts:241

Marks whether the merchant is logically deleted.

Parameters

isSoftDeleted

boolean

Flag indicating soft deletion status

Returns

this

The MerchantBuilder instance for chaining


withCategory()

withCategory(category): this

Defined in: data/mocks/merchant.ts:251

Sets the business category of the merchant.

Parameters

category

MerchantCategory

Business type classification

Returns

this

The MerchantBuilder instance for chaining


withAddress()

withAddress(address): this

Defined in: data/mocks/merchant.ts:269

Sets the merchant's physical address.

Parameters

address

string

Street address, city, state, zip

Returns

this

The MerchantBuilder instance for method chaining

Example

const merchant = new MerchantBuilder()
.withAddress("123 Main St, Springfield, IL 62701")
.build();

withPhoneNumber()

withPhoneNumber(phoneNumber): this

Defined in: data/mocks/merchant.ts:287

Sets the merchant's contact phone number.

Parameters

phoneNumber

string

Phone number in any format

Returns

this

The MerchantBuilder instance for method chaining

Example

const merchant = new MerchantBuilder()
.withPhoneNumber("+1-555-123-4567")
.build();

withParentCompanyId()

withParentCompanyId(companyId): this

Defined in: data/mocks/merchant.ts:314

Sets the parent company identifier for franchise/chain relationships.

Parameters

companyId

string

UUID of parent company/chain

Returns

this

The MerchantBuilder instance for method chaining

Remarks

Used to group multiple locations under a single parent entity (e.g., all McDonald's locations).

Example

const parentId = "corp-uuid";
const location1 = new MerchantBuilder()
.withParentCompanyId(parentId)
.withName("McDonald's - Downtown")
.build();
const location2 = new MerchantBuilder()
.withParentCompanyId(parentId)
.withName("McDonald's - Airport")
.build();

build()

build(): Merchant

Defined in: data/mocks/merchant.ts:323

Constructs the final merchant object from builder state.

Returns

Merchant

The constructed Merchant object


buildMany()

buildMany(count): Merchant[]

Defined in: data/mocks/merchant.ts:332

Creates multiple merchant instances with the same configuration.

Parameters

count

number

How many merchants to create

Returns

Merchant[]

An array of constructed Merchant objects

// was this page useful?