@passly-nl/data 1.2.2 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +664 -69
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1982 -343
- package/dist/index.mjs.map +1 -1
- package/package.json +6 -8
- package/src/adapter/StatisticsBuyersAdapter.ts +50 -1
- package/src/adapter/StatisticsChartAdapter.ts +56 -0
- package/src/adapter/StatisticsEventsAdapter.ts +41 -2
- package/src/adapter/StatisticsGrowthAdapter.ts +9 -1
- package/src/adapter/StatisticsMarketingAdapter.ts +78 -0
- package/src/adapter/StatisticsOperationsAdapter.ts +45 -12
- package/src/adapter/StatisticsOverviewAdapter.ts +33 -2
- package/src/adapter/StatisticsRefundsAdapter.ts +43 -0
- package/src/adapter/StatisticsSalesAdapter.ts +36 -1
- package/src/adapter/index.ts +3 -1
- package/src/dto/eventStatistics/index.ts +0 -1
- package/src/dto/statistics/StatisticsBuyersAcquisitionSourceDto.ts +28 -0
- package/src/dto/statistics/StatisticsBuyersAgeGenderMatrixDto.ts +38 -0
- package/src/dto/statistics/StatisticsBuyersCohortRetentionDto.ts +48 -0
- package/src/dto/statistics/StatisticsBuyersDeviceConversionDto.ts +48 -0
- package/src/dto/statistics/StatisticsBuyersGeographicDistributionDto.ts +49 -0
- package/src/dto/statistics/StatisticsBuyersSpendBucketsDto.ts +36 -0
- package/src/dto/statistics/StatisticsChartDto.ts +43 -0
- package/src/dto/statistics/StatisticsEventsSalesCurveDto.ts +19 -0
- package/src/dto/statistics/StatisticsEventsSalesCurveEventDto.ts +59 -0
- package/src/dto/statistics/StatisticsEventsSellOutTimingDto.ts +39 -0
- package/src/dto/statistics/StatisticsEventsSellOutTimingEventDto.ts +38 -0
- package/src/dto/statistics/StatisticsEventsTimeToEventDto.ts +36 -0
- package/src/dto/statistics/StatisticsGrowthCmgrDto.ts +38 -0
- package/src/dto/statistics/StatisticsMarketingCampaignDto.ts +69 -0
- package/src/dto/statistics/StatisticsMarketingOverviewDto.ts +79 -0
- package/src/dto/statistics/StatisticsMarketingReferrerDto.ts +39 -0
- package/src/dto/statistics/StatisticsMarketingShortlinkRoiDto.ts +109 -0
- package/src/dto/statistics/StatisticsMarketingSourceBreakdownDto.ts +49 -0
- package/src/dto/statistics/StatisticsMarketingSourceFunnelDto.ts +48 -0
- package/src/dto/statistics/StatisticsMarketingSourceMediumMatrixDto.ts +39 -0
- package/src/dto/statistics/StatisticsOperationsNoShowRateDto.ts +59 -0
- package/src/dto/statistics/StatisticsOperationsNoShowRateEventDto.ts +58 -0
- package/src/dto/statistics/StatisticsOperationsScanTimeDistributionDto.ts +36 -0
- package/src/dto/statistics/{StatisticsOperationsTaskAssigneeDto.ts → StatisticsOperationsStewardDto.ts} +28 -8
- package/src/dto/statistics/StatisticsOperationsStockUtilizationDto.ts +100 -0
- package/src/dto/statistics/StatisticsOverviewCancellationFunnelDto.ts +58 -0
- package/src/dto/statistics/StatisticsOverviewReservationConversionRateDto.ts +78 -0
- package/src/dto/statistics/StatisticsOverviewTopShopDto.ts +49 -0
- package/src/dto/statistics/StatisticsPieChartDto.ts +29 -0
- package/src/dto/statistics/StatisticsRefundsAmountDistributionDto.ts +38 -0
- package/src/dto/statistics/StatisticsRefundsOverviewDto.ts +59 -0
- package/src/dto/statistics/StatisticsRefundsTopEventDto.ts +70 -0
- package/src/dto/statistics/StatisticsRefundsVelocityDto.ts +45 -0
- package/src/dto/statistics/StatisticsSalesDiscountEfficacyDto.ts +99 -0
- package/src/dto/statistics/StatisticsSalesFailedTransactionReasonDto.ts +29 -0
- package/src/dto/statistics/StatisticsSalesOrderValueDistributionDto.ts +38 -0
- package/src/dto/statistics/StatisticsSalesRepeatPurchaseVelocityDto.ts +35 -0
- package/src/dto/statistics/index.ts +37 -2
- package/src/service/MerchantEventStatisticsBuyersService.ts +4 -5
- package/src/service/MerchantEventStatisticsOperationsService.ts +4 -5
- package/src/service/MerchantEventStatisticsSalesService.ts +10 -11
- package/src/service/MerchantStatisticsBuyersService.ts +64 -5
- package/src/service/MerchantStatisticsEventsService.ts +48 -9
- package/src/service/MerchantStatisticsGrowthService.ts +25 -5
- package/src/service/MerchantStatisticsMarketingService.ts +96 -0
- package/src/service/MerchantStatisticsOperationsService.ts +39 -10
- package/src/service/MerchantStatisticsOverviewService.ts +34 -5
- package/src/service/MerchantStatisticsRefundsService.ts +76 -0
- package/src/service/MerchantStatisticsSalesService.ts +78 -9
- package/src/service/MerchantStatisticsService.ts +0 -11
- package/src/service/index.ts +2 -0
- package/src/types/index.ts +1 -0
- package/src/types/statistics.ts +32 -0
- package/src/adapter/EventStatisticsSalesAdapter.ts +0 -21
- package/src/dto/eventStatistics/EventStatisticsSalesFlowChartDto.ts +0 -66
- package/src/dto/statistics/StatisticsOperationsTasksOverviewDto.ts +0 -69
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { dto } from '@basmilius/http-client';
|
|
2
|
+
|
|
3
|
+
@dto
|
|
4
|
+
export class StatisticsBuyersDeviceConversionDto {
|
|
5
|
+
get operatingSystem(): string {
|
|
6
|
+
return this.#operatingSystem;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
set operatingSystem(value: string) {
|
|
10
|
+
this.#operatingSystem = value;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
get visits(): number {
|
|
14
|
+
return this.#visits;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
set visits(value: number) {
|
|
18
|
+
this.#visits = value;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
get orders(): number {
|
|
22
|
+
return this.#orders;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
set orders(value: number) {
|
|
26
|
+
this.#orders = value;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
get conversionRate(): number {
|
|
30
|
+
return this.#conversionRate;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
set conversionRate(value: number) {
|
|
34
|
+
this.#conversionRate = value;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
#operatingSystem: string;
|
|
38
|
+
#visits: number;
|
|
39
|
+
#orders: number;
|
|
40
|
+
#conversionRate: number;
|
|
41
|
+
|
|
42
|
+
constructor(operatingSystem: string, visits: number, orders: number, conversionRate: number) {
|
|
43
|
+
this.#operatingSystem = operatingSystem;
|
|
44
|
+
this.#visits = visits;
|
|
45
|
+
this.#orders = orders;
|
|
46
|
+
this.#conversionRate = conversionRate;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { dto } from '@basmilius/http-client';
|
|
2
|
+
import type { CostDto } from '#data/dto';
|
|
3
|
+
|
|
4
|
+
@dto
|
|
5
|
+
export class StatisticsBuyersGeographicDistributionDto {
|
|
6
|
+
get country(): string {
|
|
7
|
+
return this.#country;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
set country(value: string) {
|
|
11
|
+
this.#country = value;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
get buyers(): number {
|
|
15
|
+
return this.#buyers;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
set buyers(value: number) {
|
|
19
|
+
this.#buyers = value;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
get orders(): number {
|
|
23
|
+
return this.#orders;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
set orders(value: number) {
|
|
27
|
+
this.#orders = value;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
get revenue(): CostDto {
|
|
31
|
+
return this.#revenue;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
set revenue(value: CostDto) {
|
|
35
|
+
this.#revenue = value;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
#country: string;
|
|
39
|
+
#buyers: number;
|
|
40
|
+
#orders: number;
|
|
41
|
+
#revenue: CostDto;
|
|
42
|
+
|
|
43
|
+
constructor(country: string, buyers: number, orders: number, revenue: CostDto) {
|
|
44
|
+
this.#country = country;
|
|
45
|
+
this.#buyers = buyers;
|
|
46
|
+
this.#orders = orders;
|
|
47
|
+
this.#revenue = revenue;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { dto } from '@basmilius/http-client';
|
|
2
|
+
|
|
3
|
+
export type StatisticsBuyersSpendBucket =
|
|
4
|
+
| 'no_purchase'
|
|
5
|
+
| 'under_50'
|
|
6
|
+
| '50_250'
|
|
7
|
+
| '250_1000'
|
|
8
|
+
| '1000_5000'
|
|
9
|
+
| 'whales';
|
|
10
|
+
|
|
11
|
+
@dto
|
|
12
|
+
export class StatisticsBuyersSpendBucketsDto {
|
|
13
|
+
get buckets(): Record<StatisticsBuyersSpendBucket, number> {
|
|
14
|
+
return this.#buckets;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
set buckets(value: Record<StatisticsBuyersSpendBucket, number>) {
|
|
18
|
+
this.#buckets = value;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
get totalBuyers(): number {
|
|
22
|
+
return this.#totalBuyers;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
set totalBuyers(value: number) {
|
|
26
|
+
this.#totalBuyers = value;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
#buckets: Record<StatisticsBuyersSpendBucket, number>;
|
|
30
|
+
#totalBuyers: number;
|
|
31
|
+
|
|
32
|
+
constructor(buckets: Record<StatisticsBuyersSpendBucket, number>, totalBuyers: number) {
|
|
33
|
+
this.#buckets = buckets;
|
|
34
|
+
this.#totalBuyers = totalBuyers;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { dto } from '@basmilius/http-client';
|
|
2
|
+
import type { Granularity, StatisticsChartSeries } from '#data/types';
|
|
3
|
+
|
|
4
|
+
@dto
|
|
5
|
+
export class StatisticsChartDto {
|
|
6
|
+
get series(): readonly StatisticsChartSeries[] {
|
|
7
|
+
return this.#series;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
set series(value: readonly StatisticsChartSeries[]) {
|
|
11
|
+
this.#series = value;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
get labels(): readonly string[] {
|
|
15
|
+
return this.#labels;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
set labels(value: readonly string[]) {
|
|
19
|
+
this.#labels = value;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
get granularity(): Granularity | null {
|
|
23
|
+
return this.#granularity;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
set granularity(value: Granularity | null) {
|
|
27
|
+
this.#granularity = value;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
#series: readonly StatisticsChartSeries[];
|
|
31
|
+
#labels: readonly string[];
|
|
32
|
+
#granularity: Granularity | null;
|
|
33
|
+
|
|
34
|
+
constructor(
|
|
35
|
+
series: readonly StatisticsChartSeries[],
|
|
36
|
+
labels: readonly string[],
|
|
37
|
+
granularity: Granularity | null
|
|
38
|
+
) {
|
|
39
|
+
this.#series = series;
|
|
40
|
+
this.#labels = labels;
|
|
41
|
+
this.#granularity = granularity;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { dto } from '@basmilius/http-client';
|
|
2
|
+
import type { StatisticsEventsSalesCurveEventDto } from '#data/dto';
|
|
3
|
+
|
|
4
|
+
@dto
|
|
5
|
+
export class StatisticsEventsSalesCurveDto {
|
|
6
|
+
get events(): readonly StatisticsEventsSalesCurveEventDto[] {
|
|
7
|
+
return this.#events;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
set events(value: readonly StatisticsEventsSalesCurveEventDto[]) {
|
|
11
|
+
this.#events = value;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
#events: readonly StatisticsEventsSalesCurveEventDto[];
|
|
15
|
+
|
|
16
|
+
constructor(events: readonly StatisticsEventsSalesCurveEventDto[]) {
|
|
17
|
+
this.#events = events;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { dto } from '@basmilius/http-client';
|
|
2
|
+
import type { DateTime } from 'luxon';
|
|
3
|
+
|
|
4
|
+
@dto
|
|
5
|
+
export class StatisticsEventsSalesCurveEventDto {
|
|
6
|
+
get id(): string {
|
|
7
|
+
return this.#id;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
set id(value: string) {
|
|
11
|
+
this.#id = value;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
get name(): string {
|
|
15
|
+
return this.#name;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
set name(value: string) {
|
|
19
|
+
this.#name = value;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
get startsOn(): DateTime {
|
|
23
|
+
return this.#startsOn;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
set startsOn(value: DateTime) {
|
|
27
|
+
this.#startsOn = value;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
get daysBeforeStart(): readonly number[] {
|
|
31
|
+
return this.#daysBeforeStart;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
set daysBeforeStart(value: readonly number[]) {
|
|
35
|
+
this.#daysBeforeStart = value;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
get cumulativeTickets(): readonly number[] {
|
|
39
|
+
return this.#cumulativeTickets;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
set cumulativeTickets(value: readonly number[]) {
|
|
43
|
+
this.#cumulativeTickets = value;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
#id: string;
|
|
47
|
+
#name: string;
|
|
48
|
+
#startsOn: DateTime;
|
|
49
|
+
#daysBeforeStart: readonly number[];
|
|
50
|
+
#cumulativeTickets: readonly number[];
|
|
51
|
+
|
|
52
|
+
constructor(id: string, name: string, startsOn: DateTime, daysBeforeStart: readonly number[], cumulativeTickets: readonly number[]) {
|
|
53
|
+
this.#id = id;
|
|
54
|
+
this.#name = name;
|
|
55
|
+
this.#startsOn = startsOn;
|
|
56
|
+
this.#daysBeforeStart = daysBeforeStart;
|
|
57
|
+
this.#cumulativeTickets = cumulativeTickets;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { dto } from '@basmilius/http-client';
|
|
2
|
+
import type { StatisticsEventsSellOutTimingEventDto } from '#data/dto';
|
|
3
|
+
|
|
4
|
+
@dto
|
|
5
|
+
export class StatisticsEventsSellOutTimingDto {
|
|
6
|
+
get eventsSoldOut(): number {
|
|
7
|
+
return this.#eventsSoldOut;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
set eventsSoldOut(value: number) {
|
|
11
|
+
this.#eventsSoldOut = value;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
get averageDaysToSellOut(): number {
|
|
15
|
+
return this.#averageDaysToSellOut;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
set averageDaysToSellOut(value: number) {
|
|
19
|
+
this.#averageDaysToSellOut = value;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
get events(): readonly StatisticsEventsSellOutTimingEventDto[] {
|
|
23
|
+
return this.#events;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
set events(value: readonly StatisticsEventsSellOutTimingEventDto[]) {
|
|
27
|
+
this.#events = value;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
#eventsSoldOut: number;
|
|
31
|
+
#averageDaysToSellOut: number;
|
|
32
|
+
#events: readonly StatisticsEventsSellOutTimingEventDto[];
|
|
33
|
+
|
|
34
|
+
constructor(eventsSoldOut: number, averageDaysToSellOut: number, events: readonly StatisticsEventsSellOutTimingEventDto[]) {
|
|
35
|
+
this.#eventsSoldOut = eventsSoldOut;
|
|
36
|
+
this.#averageDaysToSellOut = averageDaysToSellOut;
|
|
37
|
+
this.#events = events;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { dto } from '@basmilius/http-client';
|
|
2
|
+
|
|
3
|
+
@dto
|
|
4
|
+
export class StatisticsEventsSellOutTimingEventDto {
|
|
5
|
+
get id(): string {
|
|
6
|
+
return this.#id;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
set id(value: string) {
|
|
10
|
+
this.#id = value;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
get name(): string {
|
|
14
|
+
return this.#name;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
set name(value: string) {
|
|
18
|
+
this.#name = value;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
get daysToSellOut(): number {
|
|
22
|
+
return this.#daysToSellOut;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
set daysToSellOut(value: number) {
|
|
26
|
+
this.#daysToSellOut = value;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
#id: string;
|
|
30
|
+
#name: string;
|
|
31
|
+
#daysToSellOut: number;
|
|
32
|
+
|
|
33
|
+
constructor(id: string, name: string, daysToSellOut: number) {
|
|
34
|
+
this.#id = id;
|
|
35
|
+
this.#name = name;
|
|
36
|
+
this.#daysToSellOut = daysToSellOut;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { dto } from '@basmilius/http-client';
|
|
2
|
+
|
|
3
|
+
export type StatisticsEventsTimeToEventBucket =
|
|
4
|
+
| 'same_day'
|
|
5
|
+
| 'within_1_week'
|
|
6
|
+
| 'within_1_month'
|
|
7
|
+
| 'within_3_months'
|
|
8
|
+
| 'within_6_months'
|
|
9
|
+
| 'over_6_months';
|
|
10
|
+
|
|
11
|
+
@dto
|
|
12
|
+
export class StatisticsEventsTimeToEventDto {
|
|
13
|
+
get buckets(): Record<StatisticsEventsTimeToEventBucket, number> {
|
|
14
|
+
return this.#buckets;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
set buckets(value: Record<StatisticsEventsTimeToEventBucket, number>) {
|
|
18
|
+
this.#buckets = value;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
get averageDays(): number {
|
|
22
|
+
return this.#averageDays;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
set averageDays(value: number) {
|
|
26
|
+
this.#averageDays = value;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
#buckets: Record<StatisticsEventsTimeToEventBucket, number>;
|
|
30
|
+
#averageDays: number;
|
|
31
|
+
|
|
32
|
+
constructor(buckets: Record<StatisticsEventsTimeToEventBucket, number>, averageDays: number) {
|
|
33
|
+
this.#buckets = buckets;
|
|
34
|
+
this.#averageDays = averageDays;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { dto } from '@basmilius/http-client';
|
|
2
|
+
|
|
3
|
+
@dto
|
|
4
|
+
export class StatisticsGrowthCmgrDto {
|
|
5
|
+
get revenueCmgr(): number {
|
|
6
|
+
return this.#revenueCmgr;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
set revenueCmgr(value: number) {
|
|
10
|
+
this.#revenueCmgr = value;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
get ticketsCmgr(): number {
|
|
14
|
+
return this.#ticketsCmgr;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
set ticketsCmgr(value: number) {
|
|
18
|
+
this.#ticketsCmgr = value;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
get monthsObserved(): number {
|
|
22
|
+
return this.#monthsObserved;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
set monthsObserved(value: number) {
|
|
26
|
+
this.#monthsObserved = value;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
#revenueCmgr: number;
|
|
30
|
+
#ticketsCmgr: number;
|
|
31
|
+
#monthsObserved: number;
|
|
32
|
+
|
|
33
|
+
constructor(revenueCmgr: number, ticketsCmgr: number, monthsObserved: number) {
|
|
34
|
+
this.#revenueCmgr = revenueCmgr;
|
|
35
|
+
this.#ticketsCmgr = ticketsCmgr;
|
|
36
|
+
this.#monthsObserved = monthsObserved;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { dto } from '@basmilius/http-client';
|
|
2
|
+
import type { CostDto } from '#data/dto';
|
|
3
|
+
|
|
4
|
+
@dto
|
|
5
|
+
export class StatisticsMarketingCampaignDto {
|
|
6
|
+
get campaign(): string {
|
|
7
|
+
return this.#campaign;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
set campaign(value: string) {
|
|
11
|
+
this.#campaign = value;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
get source(): string {
|
|
15
|
+
return this.#source;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
set source(value: string) {
|
|
19
|
+
this.#source = value;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
get medium(): string {
|
|
23
|
+
return this.#medium;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
set medium(value: string) {
|
|
27
|
+
this.#medium = value;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
get orders(): number {
|
|
31
|
+
return this.#orders;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
set orders(value: number) {
|
|
35
|
+
this.#orders = value;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
get tickets(): number {
|
|
39
|
+
return this.#tickets;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
set tickets(value: number) {
|
|
43
|
+
this.#tickets = value;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
get revenue(): CostDto {
|
|
47
|
+
return this.#revenue;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
set revenue(value: CostDto) {
|
|
51
|
+
this.#revenue = value;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
#campaign: string;
|
|
55
|
+
#source: string;
|
|
56
|
+
#medium: string;
|
|
57
|
+
#orders: number;
|
|
58
|
+
#tickets: number;
|
|
59
|
+
#revenue: CostDto;
|
|
60
|
+
|
|
61
|
+
constructor(campaign: string, source: string, medium: string, orders: number, tickets: number, revenue: CostDto) {
|
|
62
|
+
this.#campaign = campaign;
|
|
63
|
+
this.#source = source;
|
|
64
|
+
this.#medium = medium;
|
|
65
|
+
this.#orders = orders;
|
|
66
|
+
this.#tickets = tickets;
|
|
67
|
+
this.#revenue = revenue;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { dto } from '@basmilius/http-client';
|
|
2
|
+
import type { CostDto } from '#data/dto';
|
|
3
|
+
|
|
4
|
+
@dto
|
|
5
|
+
export class StatisticsMarketingOverviewDto {
|
|
6
|
+
get attributedOrders(): number {
|
|
7
|
+
return this.#attributedOrders;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
set attributedOrders(value: number) {
|
|
11
|
+
this.#attributedOrders = value;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
get directOrders(): number {
|
|
15
|
+
return this.#directOrders;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
set directOrders(value: number) {
|
|
19
|
+
this.#directOrders = value;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
get attributionRate(): number {
|
|
23
|
+
return this.#attributionRate;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
set attributionRate(value: number) {
|
|
27
|
+
this.#attributionRate = value;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
get attributedRevenue(): CostDto {
|
|
31
|
+
return this.#attributedRevenue;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
set attributedRevenue(value: CostDto) {
|
|
35
|
+
this.#attributedRevenue = value;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
get directRevenue(): CostDto {
|
|
39
|
+
return this.#directRevenue;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
set directRevenue(value: CostDto) {
|
|
43
|
+
this.#directRevenue = value;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
get paidAdOrders(): number {
|
|
47
|
+
return this.#paidAdOrders;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
set paidAdOrders(value: number) {
|
|
51
|
+
this.#paidAdOrders = value;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
get paidAdRevenue(): CostDto {
|
|
55
|
+
return this.#paidAdRevenue;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
set paidAdRevenue(value: CostDto) {
|
|
59
|
+
this.#paidAdRevenue = value;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
#attributedOrders: number;
|
|
63
|
+
#directOrders: number;
|
|
64
|
+
#attributionRate: number;
|
|
65
|
+
#attributedRevenue: CostDto;
|
|
66
|
+
#directRevenue: CostDto;
|
|
67
|
+
#paidAdOrders: number;
|
|
68
|
+
#paidAdRevenue: CostDto;
|
|
69
|
+
|
|
70
|
+
constructor(attributedOrders: number, directOrders: number, attributionRate: number, attributedRevenue: CostDto, directRevenue: CostDto, paidAdOrders: number, paidAdRevenue: CostDto) {
|
|
71
|
+
this.#attributedOrders = attributedOrders;
|
|
72
|
+
this.#directOrders = directOrders;
|
|
73
|
+
this.#attributionRate = attributionRate;
|
|
74
|
+
this.#attributedRevenue = attributedRevenue;
|
|
75
|
+
this.#directRevenue = directRevenue;
|
|
76
|
+
this.#paidAdOrders = paidAdOrders;
|
|
77
|
+
this.#paidAdRevenue = paidAdRevenue;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { dto } from '@basmilius/http-client';
|
|
2
|
+
import type { CostDto } from '#data/dto';
|
|
3
|
+
|
|
4
|
+
@dto
|
|
5
|
+
export class StatisticsMarketingReferrerDto {
|
|
6
|
+
get host(): string {
|
|
7
|
+
return this.#host;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
set host(value: string) {
|
|
11
|
+
this.#host = value;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
get orders(): number {
|
|
15
|
+
return this.#orders;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
set orders(value: number) {
|
|
19
|
+
this.#orders = value;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
get revenue(): CostDto {
|
|
23
|
+
return this.#revenue;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
set revenue(value: CostDto) {
|
|
27
|
+
this.#revenue = value;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
#host: string;
|
|
31
|
+
#orders: number;
|
|
32
|
+
#revenue: CostDto;
|
|
33
|
+
|
|
34
|
+
constructor(host: string, orders: number, revenue: CostDto) {
|
|
35
|
+
this.#host = host;
|
|
36
|
+
this.#orders = orders;
|
|
37
|
+
this.#revenue = revenue;
|
|
38
|
+
}
|
|
39
|
+
}
|