@exclusive-website/types 1.0.3 → 1.0.5

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 (2) hide show
  1. package/package.json +1 -1
  2. package/src/types.ts +217 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@exclusive-website/types",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "description": "A collection of shared types (DTOs and DBEs) for the organization",
5
5
  "main": "src/types.ts",
6
6
  "types": "src/types.ts",
package/src/types.ts CHANGED
@@ -25,4 +25,221 @@ export interface ModelDTO {
25
25
  services: string[];
26
26
  otherSpecialServices: string[];
27
27
  phoneNumber: string;
28
+ }
29
+
30
+ export type ActivityStatus = "active" | "inactive";
31
+
32
+ export interface ModelListingDTO {
33
+ id: string;
34
+ listingId: string;
35
+ nickname: string;
36
+ city: string;
37
+ image: string[]; //array of urls
38
+ activityStatus: ActivityStatus;
39
+ approved: boolean;
40
+ expirationTime: number; //in hours
41
+ toppedDuration: number; //in hours
42
+ views: number;
43
+ creationDate: string; //format DD.MM.YYYY
44
+ inModelDashboard: boolean;
45
+ }
46
+
47
+ export interface ChargingOption {
48
+ cost: number;
49
+ currency: SupportedCurrency;
50
+ duration: string;
51
+ id?: string; //id for radio
52
+ }
53
+
54
+ export interface FreeOfChargeOption {
55
+ amount: string; // "bez"
56
+ }
57
+
58
+ export interface InfoPoint {
59
+ point: string;
60
+ }
61
+
62
+ export interface ListingPricingDTO {
63
+ id: string;
64
+ title: string;
65
+ description: string;
66
+ chargingOptions: ChargingOption[];
67
+ infoPoints: InfoPoint[];
68
+ }
69
+
70
+ export interface ToppedPricingDTO {
71
+ id: string;
72
+ title: string;
73
+ description: string;
74
+ displayFreeOfChargeOption: boolean;
75
+ freeOfChargeOption?: FreeOfChargeOption;
76
+ generalTopped: {
77
+ title: string;
78
+ description: string;
79
+ chargingOptions: ChargingOption[];
80
+ }
81
+ countyTopped: {
82
+ title: string;
83
+ description: string;
84
+ chargingOptions: ChargingOption[];
85
+ }
86
+ }
87
+
88
+ export type SupportedCurrency = "EUR" | "CZK" | null;
89
+
90
+ export interface PaymentOptionDTO {
91
+ id: string;
92
+ title: string;
93
+ description: string;
94
+ images?:
95
+ {
96
+ url: string,
97
+ alt: string,
98
+ width: number,
99
+ height: number,
100
+ }[],
101
+ }
102
+
103
+ // ENUMS
104
+ export enum SexualOrientation {
105
+ HETERO = "hetero",
106
+ BI = "bi",
107
+ HOMO = "homo"
108
+ }
109
+
110
+ export enum ShaveStatus {
111
+ SHAVED = "shaved",
112
+ PARTIALLY_SHAVED = "partially shaved",
113
+ NOT_SHAVED = "not shaved"
114
+ }
115
+
116
+ export enum Language {
117
+ SK = "slovak",
118
+ EN = "english",
119
+ DE = "german"
120
+ }
121
+
122
+ export enum AvailableService {
123
+ MASSAGE = "massage",
124
+ HANDJOB = "handjob",
125
+ STRIPTEASE = "striptease",
126
+ MUTUAL_MASSAGE = "mutualMassage",
127
+ FOOTJOB = "footjob",
128
+ FOOT_FETISH = "footFetish",
129
+ AUTOEROTIC = "autoerotic",
130
+ STRAP_ON = "strapOn",
131
+ DOMINANCE = "dominance",
132
+ BONDAGE = "bondage",
133
+ ROLEPLAY = "roleplay"
134
+ }
135
+
136
+ export enum SpecialService {
137
+ ANAL = "anal",
138
+ BARE_ORAL = "bareOral",
139
+ CUM_IN_MOUTH = "cumInMouth",
140
+ CUM_ON_FACE = "cumOnFace",
141
+ DEEP_ORAL = "deepOral",
142
+ DOUBLE_PENETRATION = "doublePenetration",
143
+ FISTING = "fisting",
144
+ POSITION_69 = "position69",
145
+ PISSING = "pissing",
146
+ RIMMING = "rimming",
147
+ TOYS = "toys"
148
+ }
149
+
150
+ // TYPE DEFINITIONS
151
+ export interface Languages {
152
+ slovak: boolean;
153
+ english: boolean;
154
+ german: boolean;
155
+ }
156
+
157
+ export type Nationality = Record<Language, string>;
158
+
159
+ export interface Contact {
160
+ socials: {
161
+ phone: string;
162
+ clir: boolean;
163
+ whatsapp: boolean;
164
+ viber: boolean;
165
+ sms: boolean;
166
+ };
167
+ location: {
168
+ city: string;
169
+ address: string;
170
+ };
171
+ }
172
+
173
+ export interface Media {
174
+ url: string;
175
+ alt?: string;
176
+ }
177
+
178
+ export type AvailableServices = Record<AvailableService, boolean>;
179
+
180
+ export type SpecialServices = Record<SpecialService, boolean>;
181
+
182
+ export interface ServicesDTO {
183
+ available: AvailableServices;
184
+ special: SpecialServices;
185
+ }
186
+
187
+ export interface ListingDTO {
188
+ id: string;
189
+ name: string;
190
+ description: string;
191
+
192
+ demographics: {
193
+ age: number;
194
+ nationality: Nationality;
195
+ languages: Languages;
196
+ };
197
+
198
+ contact: Contact;
199
+
200
+ about: {
201
+ height: number;
202
+ weight: number;
203
+ footSize: number;
204
+ breastSize: string;
205
+ breastImplants: boolean;
206
+ hairColor: string;
207
+ hairLength: string;
208
+ tattoo: boolean;
209
+ piercing: boolean;
210
+ smoker: boolean;
211
+ sexualOrientation: SexualOrientation;
212
+ shaveStatus: ShaveStatus;
213
+ };
214
+
215
+ addons: {
216
+ experience: string;
217
+ targetClientel: {
218
+ privat: boolean;
219
+ escort: boolean;
220
+ men: boolean;
221
+ women: boolean;
222
+ pairs: boolean;
223
+ ztp: boolean;
224
+ };
225
+ };
226
+
227
+ services: ServicesDTO;
228
+
229
+ images: Media[];
230
+ videos?: Media[];
231
+ }
232
+
233
+ export interface RegisterUserDto {
234
+ email: string;
235
+ password: string;
236
+ }
237
+
238
+ export interface LoginUserDto {
239
+ email: string;
240
+ password: string;
241
+ }
242
+
243
+ export interface JwtDto {
244
+ token: string;
28
245
  }