@sellout/models 0.0.1

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.
Files changed (113) hide show
  1. package/.dist/interfaces/IAddress.d.ts +13 -0
  2. package/.dist/interfaces/IAddress.js +3 -0
  3. package/.dist/interfaces/IAddress.js.map +1 -0
  4. package/.dist/interfaces/IMetrics.d.ts +29 -0
  5. package/.dist/interfaces/IMetrics.js +3 -0
  6. package/.dist/interfaces/IMetrics.js.map +1 -0
  7. package/.dist/interfaces/IPagination.d.ts +4 -0
  8. package/.dist/interfaces/IPagination.js +3 -0
  9. package/.dist/interfaces/IPagination.js.map +1 -0
  10. package/.dist/interfaces/IQuery.d.ts +15 -0
  11. package/.dist/interfaces/IQuery.js +20 -0
  12. package/.dist/interfaces/IQuery.js.map +1 -0
  13. package/.dist/mongo/Address.d.ts +58 -0
  14. package/.dist/mongo/Address.js +60 -0
  15. package/.dist/mongo/Address.js.map +1 -0
  16. package/.dist/mongo/Metrics.d.ts +131 -0
  17. package/.dist/mongo/Metrics.js +137 -0
  18. package/.dist/mongo/Metrics.js.map +1 -0
  19. package/.dist/schemas/Address.d.ts +58 -0
  20. package/.dist/schemas/Address.js +60 -0
  21. package/.dist/schemas/Address.js.map +1 -0
  22. package/.dist/schemas/Metrics.d.ts +131 -0
  23. package/.dist/schemas/Metrics.js +137 -0
  24. package/.dist/schemas/Metrics.js.map +1 -0
  25. package/.dist/sellout-proto.js +92266 -0
  26. package/.dist/utils/EventUtil.d.ts +38 -0
  27. package/.dist/utils/EventUtil.js +188 -0
  28. package/.dist/utils/EventUtil.js.map +1 -0
  29. package/.dist/utils/FeeUtil.d.ts +7 -0
  30. package/.dist/utils/FeeUtil.js +37 -0
  31. package/.dist/utils/FeeUtil.js.map +1 -0
  32. package/.dist/utils/OrderUtil.d.ts +29 -0
  33. package/.dist/utils/OrderUtil.js +216 -0
  34. package/.dist/utils/OrderUtil.js.map +1 -0
  35. package/.dist/utils/WebFlowUtil.d.ts +7 -0
  36. package/.dist/utils/WebFlowUtil.js +10 -0
  37. package/.dist/utils/WebFlowUtil.js.map +1 -0
  38. package/package.json +29 -0
  39. package/src/interfaces/IAddress.ts +13 -0
  40. package/src/interfaces/IArtist.ts +14 -0
  41. package/src/interfaces/IArtistContact.ts +8 -0
  42. package/src/interfaces/IArtistPressKit.ts +8 -0
  43. package/src/interfaces/IEvent.ts +62 -0
  44. package/src/interfaces/IEventCustomField.ts +16 -0
  45. package/src/interfaces/IEventPromotion.ts +15 -0
  46. package/src/interfaces/IEventSchedule.ts +7 -0
  47. package/src/interfaces/IEventUpgrade.ts +13 -0
  48. package/src/interfaces/IFee.ts +46 -0
  49. package/src/interfaces/IFile.ts +7 -0
  50. package/src/interfaces/IMetrics.ts +33 -0
  51. package/src/interfaces/IOrder.ts +32 -0
  52. package/src/interfaces/IOrderCustomField.ts +7 -0
  53. package/src/interfaces/IOrderState.ts +19 -0
  54. package/src/interfaces/IOrderSummary.ts +37 -0
  55. package/src/interfaces/IOrderTicket.ts +15 -0
  56. package/src/interfaces/IOrderType.ts +5 -0
  57. package/src/interfaces/IOrderUpgrade.ts +14 -0
  58. package/src/interfaces/IOrganization.ts +19 -0
  59. package/src/interfaces/IPagination.ts +4 -0
  60. package/src/interfaces/IPerformance.ts +18 -0
  61. package/src/interfaces/IQuery.ts +30 -0
  62. package/src/interfaces/IRefund.ts +6 -0
  63. package/src/interfaces/IRole.ts +17 -0
  64. package/src/interfaces/IScan.ts +5 -0
  65. package/src/interfaces/ISeating.ts +9 -0
  66. package/src/interfaces/ISocialAccountLink.ts +14 -0
  67. package/src/interfaces/ITask.ts +22 -0
  68. package/src/interfaces/ITicketExchange.ts +11 -0
  69. package/src/interfaces/ITicketHold.ts +6 -0
  70. package/src/interfaces/ITicketTier.ts +9 -0
  71. package/src/interfaces/ITicketType.ts +12 -0
  72. package/src/interfaces/IUser.ts +26 -0
  73. package/src/interfaces/IUserProfile.ts +20 -0
  74. package/src/interfaces/IVenue.ts +17 -0
  75. package/src/interfaces/IWebFlow.ts +55 -0
  76. package/src/proto/artist.proto +156 -0
  77. package/src/proto/broadcast.proto +157 -0
  78. package/src/proto/common.proto +59 -0
  79. package/src/proto/email.proto +179 -0
  80. package/src/proto/error.proto +31 -0
  81. package/src/proto/event.proto +270 -0
  82. package/src/proto/fee.proto +196 -0
  83. package/src/proto/file-upload.proto +27 -0
  84. package/src/proto/order.proto +272 -0
  85. package/src/proto/organization.proto +107 -0
  86. package/src/proto/role.proto +136 -0
  87. package/src/proto/seating.proto +64 -0
  88. package/src/proto/stripe.proto +181 -0
  89. package/src/proto/task.proto +39 -0
  90. package/src/proto/twilio.proto +43 -0
  91. package/src/proto/user-profile.proto +124 -0
  92. package/src/proto/user.proto +284 -0
  93. package/src/proto/venue.proto +120 -0
  94. package/src/proto/web-flow.proto +315 -0
  95. package/src/schemas/Address.ts +57 -0
  96. package/src/schemas/Artist.ts +104 -0
  97. package/src/schemas/Event.ts +400 -0
  98. package/src/schemas/Fee.ts +74 -0
  99. package/src/schemas/Metrics.ts +134 -0
  100. package/src/schemas/Order.ts +200 -0
  101. package/src/schemas/Organization.ts +108 -0
  102. package/src/schemas/Role.ts +37 -0
  103. package/src/schemas/Seating.ts +34 -0
  104. package/src/schemas/User.ts +95 -0
  105. package/src/schemas/UserProfile.ts +67 -0
  106. package/src/schemas/Venue.ts +58 -0
  107. package/src/schemas/WebFlow.ts +132 -0
  108. package/src/utils/EventUtil.ts +186 -0
  109. package/src/utils/FeeUtil.ts +34 -0
  110. package/src/utils/OrderUtil.ts +226 -0
  111. package/src/utils/WebFlowUtil.ts +8 -0
  112. package/tsconfig.json +27 -0
  113. package/tslint.json +21 -0
@@ -0,0 +1,62 @@
1
+ import IAddress from "@sellout/models/.dist/interfaces/IAddress";
2
+ import IMetrics from "@sellout/models/.dist/interfaces/IMetrics";
3
+ import ITicketType from './ITicketType';
4
+ import IEventSchedule from './IEventSchedule';
5
+ import ITicketExchange from './ITicketExchange';
6
+ import IEventUpgrade from './IEventUpgrade';
7
+ import ITicketHold from './ITicketHold';
8
+ import IPerformance from './IPerformance';
9
+ import IEventPromotion from './IEventPromotion';
10
+ import IEventCustomField from './IEventCustomField';
11
+
12
+ export enum EventTypeEnum {
13
+ Concert = 'Concert',
14
+ BasicEvent = 'Basic Event',
15
+ }
16
+
17
+ export enum EventAgeEnum {
18
+ AllAges = 'All Ages',
19
+ EighteenPlus = '18+',
20
+ TwentyOnePlus = '21+',
21
+ }
22
+
23
+ export enum SendQRCodeEnum {
24
+ DayOfShow = 'Day of Show',
25
+ UponOrder = 'Upon Order',
26
+ TwoWeeksBefore = 'Two Weeks Before Show',
27
+ }
28
+
29
+ export enum EventProcessAsEnum {
30
+ Paid = 'Paid',
31
+ RSVP = 'RSVP',
32
+ Free = 'Free'
33
+ }
34
+
35
+ export default interface IEvent {
36
+ _id?: string;
37
+ orgId: string;
38
+ type: EventTypeEnum;
39
+ name?: string;
40
+ subtitle?: string;
41
+ description?: string;
42
+ posterImageUrl?: string;
43
+ venueId?: string;
44
+ createdAt: number;
45
+ publishable: boolean;
46
+ seatingChartKey?: string;
47
+ age?: EventAgeEnum;
48
+ active?: boolean;
49
+ userAgreement?: string;
50
+ processAs?: EventProcessAsEnum;
51
+ sendQRCode?: SendQRCodeEnum;
52
+ location?: IAddress;
53
+ schedule?: IEventSchedule;
54
+ performances?: IPerformance[];
55
+ ticketTypes?: ITicketType[];
56
+ holds?: ITicketHold[];
57
+ upgrades?: IEventUpgrade[];
58
+ promotions?: IEventPromotion[];
59
+ customFields?: IEventCustomField[];
60
+ exchange?: ITicketExchange;
61
+ metrics: IMetrics;
62
+ }
@@ -0,0 +1,16 @@
1
+ export enum EventCustomFieldTypeEnum {
2
+ Text = 'Text',
3
+ Number = 'Number',
4
+ }
5
+
6
+ export default interface IEventCustomFields {
7
+ _id?: string;
8
+ label?: string;
9
+ type: EventCustomFieldTypeEnum;
10
+ minLength: number;
11
+ maxLength: number;
12
+ maxValue: number;
13
+ minValue: number;
14
+ required: boolean;
15
+ active: boolean;
16
+ }
@@ -0,0 +1,15 @@
1
+ export enum EventPromotionTypeEnum {
2
+ PreSale = "Pre-Sale Code",
3
+ Secret = "Secret Code",
4
+ }
5
+
6
+ export default interface IEventPromotion {
7
+ _id?: string;
8
+ code: string;
9
+ type: EventPromotionTypeEnum;
10
+ totalQty: number;
11
+ remainingQty: number;
12
+ ticketTypeIds: string[];
13
+ upgradeIds: string[];
14
+ active: boolean;
15
+ }
@@ -0,0 +1,7 @@
1
+ export default interface IEventSchedule {
2
+ announceAt?: number;
3
+ ticketsAt?: number;
4
+ ticketsEndAt?: number;
5
+ startsAt?: number;
6
+ endsAt?: number;
7
+ }
@@ -0,0 +1,13 @@
1
+ export default interface IEventUpgrade {
2
+ _id?: string;
3
+ name: string;
4
+ price: number;
5
+ totalQty: number;
6
+ remainingQty: number;
7
+ purchaseLimit: number;
8
+ complimentary: boolean;
9
+ ticketTypeIds: string[];
10
+ imageUrl: string;
11
+ description: string;
12
+ visible: boolean;
13
+ }
@@ -0,0 +1,46 @@
1
+ export enum FeeTypeEnum {
2
+ Flat = 'Flat',
3
+ Percent = 'Percent',
4
+ FlatPlusPercent = 'Flat + Percent',
5
+ }
6
+
7
+ export enum FeeAppliedToEnum {
8
+ Order = 'Order',
9
+ Ticket = 'Ticket',
10
+ Upgrade = 'Upgrade',
11
+ }
12
+
13
+ export enum FeeAppliedByEnum {
14
+ Sellout = 'Sellout',
15
+ Stripe = 'Stripe',
16
+ Organization = 'Organization',
17
+ }
18
+
19
+ export enum FeeFilters {
20
+ // Online = 'Online Orders Only',
21
+ // BoxOffice = 'Box Office Orders Only',
22
+ Seated = 'Seated',
23
+ // FirstOrder = 'FirstOrder',
24
+ }
25
+
26
+ export default interface IFee {
27
+ _id?: string;
28
+ name: string;
29
+ orgId?: string;
30
+ eventId?: string;
31
+ type: FeeTypeEnum;
32
+ value: number;
33
+ appliedTo: FeeAppliedToEnum;
34
+ appliedBy: FeeAppliedByEnum;
35
+ minAppliedToPrice?: number;
36
+ maxAppliedToPrice?: number;
37
+ filters?: FeeFilters[];
38
+ createdBy: string;
39
+ createdAt: number;
40
+ updatedBy: string;
41
+ updatedAt: number;
42
+ disabled: boolean;
43
+ // disableable: boolean;
44
+ // editable: boolean;
45
+ // isGlobal: boolean;
46
+ }
@@ -0,0 +1,7 @@
1
+ export default interface IFile {
2
+ file?: any;
3
+ mimetype?: string;
4
+ filename?: string;
5
+ encoding?: string;
6
+ url?: string;
7
+ }
@@ -0,0 +1,33 @@
1
+ export default interface IMetrics {
2
+ _id?: string;
3
+ orgId: string;
4
+ createdAt: number;
5
+ // Value
6
+ lifeTimeValue?: number;
7
+ yearToDateValue?: number;
8
+ lifeTimeValueRefunded?: number;
9
+ yearToDateValueRefunded?: number;
10
+ lifeTimeValueComped?: number;
11
+ yearToDateValueComped?: number;
12
+ // Tickets
13
+ lifeTimeTicketsPurchased?: number;
14
+ yearToDateTicketsPurchased?: number;
15
+ lifeTimeTicketsRefunded?: number;
16
+ yearToDateTicketsRefunded?: number;
17
+ lifeTimeTicketsComped?: number;
18
+ yearToDateTicketsComped?: number;
19
+ // Upgrades
20
+ lifeTimeUpgradesPurchased?: number;
21
+ yearToDateUpgradesPurchased?: number;
22
+ lifeTimeUpgradesRefunded?: number;
23
+ yearToDateUpgradesRefunded?: number;
24
+ lifeTimeUpgradesComped?: number;
25
+ yearToDateUpgradesComped?: number;
26
+ // Orders
27
+ lifeTimeOrdersPurchased?: number;
28
+ yearToDateOrdersPurchased?: number;
29
+ lifeTimeOrdersRefunded?: number;
30
+ yearToDateOrdersRefunded?: number;
31
+ lifeTimeOrdersComped?: number;
32
+ yearToDateOrdersComped?: number;
33
+ }
@@ -0,0 +1,32 @@
1
+ import IAddress from "@sellout/models/.dist/interfaces/IAddress";
2
+ import IOrderTicket from './IOrderTicket';
3
+ import IOrderUpgrade from './IOrderUpgrade';
4
+ import IOrderCustomField from './IOrderCustomField'
5
+ import { OrderStateEnum } from './IOrderState';
6
+ import { OrderTypeEnum } from './IOrderType';
7
+
8
+ export default interface IOrder {
9
+ _id?: string;
10
+ secretId?: string;
11
+ orgId: string;
12
+ userId: string;
13
+ eventId: string;
14
+ eventName: string;
15
+ venueIds: string[];
16
+ artistIds: string[];
17
+ feeIds: string[];
18
+ stripeChargeId?: string;
19
+ tickets: IOrderTicket[];
20
+ upgrades: IOrderUpgrade[];
21
+ recipientEmails?: string[];
22
+ qrCodeUrl?: string;
23
+ state?: OrderStateEnum,
24
+ refundedAmount?: number;
25
+ type?: OrderTypeEnum;
26
+ createdAt?: number;
27
+ createdBy?: string;
28
+ promotionCode?: string;
29
+ ipAddress?: string;
30
+ address?: IAddress
31
+ customFields?: IOrderCustomField[];
32
+ };
@@ -0,0 +1,7 @@
1
+ export default interface IOrderCustomField {
2
+ _id?: string;
3
+ label: string;
4
+ value: string;
5
+ customFieldId: string;
6
+ type: string,
7
+ };
@@ -0,0 +1,19 @@
1
+ export enum OrderStateEnum {
2
+ ACTIVE = 'Active',
3
+ REFUNDED = 'Refunded',
4
+ PARTIALLY_REFUNDED = 'Partial Refund',
5
+ // TRANSFERRED = 'Transferred',
6
+ // RESOLD = 'Re-sold',
7
+ // PARTIALLY_ADMITTED = 'Partially Admitted',
8
+ // ADMITTED = 'Admitted',
9
+ };
10
+
11
+ export enum OrderItemStateEnum {
12
+ ACTIVE = 'Active',
13
+ CANCELED = 'Canceled',
14
+ // AWATING_TRANSFER = 'Awaiting Transfer',
15
+ // TRANSFERRED = 'Transferred',
16
+ // AWATING_SALE = 'Awaiting Sale',
17
+ // RESOLD = 'Re-sold',
18
+ // SCANNED = 'Scanned',
19
+ };
@@ -0,0 +1,37 @@
1
+ import { OrderStateEnum } from './IOrderState';
2
+
3
+ export interface IOrderSummaryItem {
4
+ typeId: string;
5
+ name: string;
6
+ price: number;
7
+ count: number;
8
+ scannedCount: number;
9
+ seats?: string[];
10
+ }
11
+
12
+ export default interface IOrderSummary {
13
+ state: OrderStateEnum;
14
+ total: number | string;
15
+ orderTotalWithRefund: number | string;
16
+ subtotal: number | string;
17
+ selloutFee: number | string;
18
+ stripeFee: number | string;
19
+ promoterFee: number | string;
20
+ createdAt: number | string;
21
+ tickets: IOrderSummaryItem[];
22
+ upgrades: IOrderSummaryItem[];
23
+ ticketsScanned?: number;
24
+ totalTickets?: number;
25
+ upgradesScanned?: number;
26
+ totalUpgrades?: number;
27
+ orgName?: string;
28
+ userFirstName?: string;
29
+ userLastName?: string;
30
+ userEmail?: string;
31
+ userPhoneNumber?: string;
32
+ eventName?: string;
33
+ venueNames?: string[];
34
+ venueName?: string;
35
+ artistNames?: string[];
36
+ aritstName?: string;
37
+ }
@@ -0,0 +1,15 @@
1
+ import IRefund from './IRefund';
2
+ import IScan from './IScan';
3
+ import { OrderItemStateEnum } from './IOrderState';
4
+
5
+ export default interface IOrderTicket {
6
+ _id?: string;
7
+ name: string;
8
+ ticketTypeId: string;
9
+ ticketTierId: string;
10
+ price: number;
11
+ seat: string;
12
+ refund: IRefund;
13
+ scan: IScan;
14
+ state: OrderItemStateEnum;
15
+ };
@@ -0,0 +1,5 @@
1
+ export enum OrderTypeEnum {
2
+ Online = 'Online',
3
+ Complimentary = 'Complimentary',
4
+ RSVP = 'RSVP',
5
+ };
@@ -0,0 +1,14 @@
1
+ import IRefund from './IRefund';
2
+ import IScan from './IScan';
3
+ import { OrderItemStateEnum } from './IOrderState';
4
+
5
+ export default interface IOrderUpgrade {
6
+ _id?: string;
7
+ name: string;
8
+ upgradeId: string;
9
+ price: number;
10
+ total: number;
11
+ refund: IRefund;
12
+ scan: IScan;
13
+ state: OrderItemStateEnum;
14
+ }
@@ -0,0 +1,19 @@
1
+ import IAddress from "@sellout/models/.dist/interfaces/IAddress";
2
+
3
+ export default interface IOrganization {
4
+ _id?: string;
5
+ userId?: string;
6
+ createdAt?: number;
7
+ authyId?: string;
8
+ stripeId?: string;
9
+ orgName?: string;
10
+ orgUrls?: string[];
11
+ address?: IAddress;
12
+ orgLogoUrl?: string;
13
+ orgColorHex?: string;
14
+ bio?: string;
15
+ email?: string;
16
+ phoneNumber?: string;
17
+ facebookPixelId?: string;
18
+ googleAnalyticsId?: string;
19
+ }
@@ -0,0 +1,4 @@
1
+ export default interface IPagination {
2
+ pageSize: number;
3
+ pageNumber: number;
4
+ }
@@ -0,0 +1,18 @@
1
+ export interface IPerformanceSchedule {
2
+ doorsAt: string;
3
+ startsAt: string;
4
+ }
5
+
6
+ export default interface IPerformance {
7
+ _id?: string;
8
+ name?: string;
9
+ headliningArtistIds?: string[];
10
+ openingArtistIds?: string[];
11
+ venueId?: string;
12
+ venueStageId?: string;
13
+ price?: number;
14
+ posterImageUrl?: string;
15
+ videoLink?: string;
16
+ songLink?: string;
17
+ schedule?: IPerformanceSchedule;
18
+ }
@@ -0,0 +1,30 @@
1
+ export interface IQuery {
2
+ any: string;
3
+ userId: string;
4
+ eventId: string;
5
+ artistId: string;
6
+ venueId: string;
7
+ startDate: number;
8
+ endDate: number;
9
+ }
10
+
11
+ export interface IPbQuery {
12
+ key: string;
13
+ value: any;
14
+ }
15
+
16
+ export function toPb(query: object): IPbQuery[] {
17
+ let pbQuery: IPbQuery[] = Object.keys(query).reduce((cur, key) => {
18
+ if (!query[key]) return cur;
19
+ cur.push({ key: key, value: query[key] } as IPbQuery);
20
+ return cur;
21
+ }, [] as IPbQuery[]);
22
+ return pbQuery;
23
+ }
24
+
25
+ export function fromPb(query: IPbQuery[]): IQuery {
26
+ return query.reduce((c, n) => {
27
+ c[n.key] = n.value;
28
+ return c;
29
+ }, {} as IQuery);
30
+ }
@@ -0,0 +1,6 @@
1
+ export default interface IRefund {
2
+ refunded: boolean;
3
+ refundedAt: number;
4
+ refundedBy: string;
5
+ refundedAmount: number;
6
+ }
@@ -0,0 +1,17 @@
1
+ export declare enum Roles {
2
+ OWNER = 'OWNER',
3
+ ADMIN = 'ADMIN',
4
+ BOX_OFFICE = 'BOX_OFFICE',
5
+ SCANNER = 'SCANNER',
6
+ }
7
+
8
+ export default interface IRole {
9
+ _id?: string;
10
+ orgId: string;
11
+ userId?: string;
12
+ userEmail: string;
13
+ createdAt: number;
14
+ createdBy: string;
15
+ role: Roles;
16
+ acceptedAt?: number;
17
+ }
@@ -0,0 +1,5 @@
1
+ export default interface IScan {
2
+ scanned: boolean;
3
+ scannedAt: number;
4
+ scannedBy: string;
5
+ }
@@ -0,0 +1,9 @@
1
+ export default interface ISeating {
2
+ _id?: string;
3
+ orgId: string;
4
+ publicKey: string;
5
+ secretKey: string;
6
+ designerKey: string;
7
+ createdAt: number;
8
+ updatedAt?: number;
9
+ }
@@ -0,0 +1,14 @@
1
+ export enum SocialAccountPlatform {
2
+ SoundClound = 'SoundCloud',
3
+ Facebook = 'Facebook',
4
+ Spotify = 'Spotify',
5
+ BandCamp = 'BandCamp',
6
+ YouTube = 'YouTube',
7
+ AppleMusic = 'Apple Music',
8
+ Instagram = 'Instagram',
9
+ }
10
+
11
+ export interface ISocialAccountLink {
12
+ platform: SocialAccountPlatform;
13
+ link: string;
14
+ }
@@ -0,0 +1,22 @@
1
+ export enum TaskTypes {
2
+ SendOrderQrCodeEmail = 'SendOrderQrCodeEmail',
3
+ UpdateWebFlowEvent = 'UpdateWebFlowEvent',
4
+ }
5
+
6
+ export default interface ITask {
7
+ _id?: string;
8
+ taskType: TaskTypes;
9
+ createdAt?: number;
10
+ executeAt: number;
11
+ startedAt?: number;
12
+ endedAt?: number;
13
+ success?: boolean;
14
+ canceledAt?: number;
15
+ userId?: string;
16
+ orgId?: string;
17
+ eventId?: string;
18
+ orderId?: string;
19
+ venueIds?: string[];
20
+ artistIds?: string[];
21
+ }
22
+
@@ -0,0 +1,11 @@
1
+ export enum TicketExchangeAllowedEnum {
2
+ Always = "Always",
3
+ Never = 'Never',
4
+ After = 'After event is sold out',
5
+ Percent = 'After a percent of tickets are sold',
6
+ }
7
+
8
+ export default interface ITicketExchange {
9
+ allowed: TicketExchangeAllowedEnum
10
+ percent: number;
11
+ }
@@ -0,0 +1,6 @@
1
+ export default interface ITicketHold {
2
+ _id?: string;
3
+ name: string;
4
+ qty: number;
5
+ ticketTypeId: string;
6
+ }
@@ -0,0 +1,9 @@
1
+ export default interface ITicketTier {
2
+ _id?: string;
3
+ name: string;
4
+ price: number;
5
+ startsAt: number;
6
+ endsAt: number;
7
+ totalQty: number;
8
+ remainingQty: number;
9
+ }
@@ -0,0 +1,12 @@
1
+ import ITicketTier from './ITicketTier'
2
+
3
+ export default interface ITicketType {
4
+ _id?: string;
5
+ name: string;
6
+ totalQty: number;
7
+ remainingQty: number;
8
+ purchaseLimit: number;
9
+ visible: boolean;
10
+ performanceIds: string[];
11
+ tiers: ITicketTier[];
12
+ }
@@ -0,0 +1,26 @@
1
+ export enum LoginTypes {
2
+ PhoneCode = 'PhoneCode',
3
+ Password = 'Password',
4
+ TwoFactor = 'TwoFactor',
5
+ }
6
+
7
+ export default interface IUser {
8
+ _id?: string;
9
+ email: string;
10
+ password?: string;
11
+ passwordHash?: string;
12
+ firstName: string;
13
+ lastName: string;
14
+ createdAt?: number;
15
+ phoneNumber?: string;
16
+ phoneNumberVerifiedAt?: number;
17
+ emailVerifyCode?: string;
18
+ emailVerifiedAt?: number;
19
+ forgotPasswordCode?: string;
20
+ lastChangedPasswordAt?: number;
21
+ orgContextId?: string;
22
+ orgRole?: string;
23
+ phoneNumberWaitingForVerify?: string;
24
+ emailWaitingForVerify?: string;
25
+ preferredLogin?: LoginTypes;
26
+ }
@@ -0,0 +1,20 @@
1
+ import IAddress from "@sellout/models/.dist/interfaces/IAddress";
2
+ import IMetrics from "@sellout/models/.dist/interfaces/IMetrics";
3
+
4
+ export default interface IUserProfile {
5
+ _id?: string;
6
+ userId: string;
7
+ firstName?: string;
8
+ lastName?: string;
9
+ email?: string;
10
+ phoneNumber?: string;
11
+ authyId?: string;
12
+ stripeCustomerId?: string;
13
+ imageUrl?: string;
14
+ metrics?: IMetrics[];
15
+ orgIds?: string[];
16
+ eventIds?: string[];
17
+ venueIds?: string[];
18
+ artistIds?: string[];
19
+ address?: IAddress;
20
+ }
@@ -0,0 +1,17 @@
1
+ import IAddress from "@sellout/models/.dist/interfaces/IAddress";
2
+ import IMetrics from "@sellout/models/.dist/interfaces/IMetrics";
3
+
4
+ export default interface IVenue {
5
+ _id?: string;
6
+ name: string;
7
+ description: string;
8
+ capacity: number;
9
+ address: IAddress;
10
+ url?: string;
11
+ imageUrls?: string[];
12
+ seatingMapIds?: string[];
13
+ venueGlobalId?: string;
14
+ orgId?: string;
15
+ venueFee?: number;
16
+ metrics?: IMetrics;
17
+ }
@@ -0,0 +1,55 @@
1
+ export enum WebFlowEntityType {
2
+ VENUE = "VENUE",
3
+ EVENT = "EVENT",
4
+ ARTIST = "ARTIST",
5
+ ORGANIZATION = "ORGANIZATION",
6
+ }
7
+
8
+ export interface IWebFlowEntityId {
9
+ webFlowSiteId: string;
10
+ webFlowEntityId: string;
11
+ slug: string;
12
+ webFlowSite?: IWebFlowSite;
13
+ }
14
+
15
+ export interface IWebFlowEntity {
16
+ _id?: string;
17
+ entityType: WebFlowEntityType,
18
+ name: string;
19
+ selloutId: string;
20
+ webFlowIds: IWebFlowEntityId[];
21
+ alwaysPublishTo?: string[];
22
+ createdAt: number;
23
+ updatedAt?: number;
24
+ }
25
+
26
+ export interface IWebFlowSiteDomain {
27
+ _id?: string;
28
+ name: string;
29
+ lastPublishedAt: number;
30
+ }
31
+
32
+ export interface IWebFlowSite {
33
+ _id?: string;
34
+ name: string;
35
+ webFlowId: string;
36
+ enabled: boolean;
37
+ eventCollectionId: string;
38
+ venueCollectionId: string;
39
+ artistCollectionId: string;
40
+ organizationCollectionId: string;
41
+ eventTypeCollectionId: string;
42
+ previewUrl: string;
43
+ domains: IWebFlowSiteDomain[];
44
+ createdAt: number;
45
+ updatedAt?: number;
46
+ }
47
+
48
+ export default interface IWebFlow {
49
+ _id?: string;
50
+ orgId: string;
51
+ sites?: IWebFlowSite[];
52
+ entities?: IWebFlowEntity[];
53
+ createdAt: number;
54
+ updatedAt?: number;
55
+ }