hh-contracts 0.0.108 → 0.0.110

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 (180) hide show
  1. package/build/common/constants/app-statuses.constant.js +6 -0
  2. package/build/common/constants/icon.constants.js +4 -0
  3. package/build/index.js +1 -0
  4. package/build/users/contracts/assign-user-role.contract.js +15 -0
  5. package/build/users/contracts/create-user.contract.js +14 -0
  6. package/build/users/contracts/delete-user.contract.js +46 -0
  7. package/build/users/contracts/find-many-users.contract.js +71 -0
  8. package/build/users/contracts/find-user.contract.js +13 -0
  9. package/build/users/contracts/index.js +23 -0
  10. package/build/users/contracts/replace-user-role-assignments.contract.js +15 -0
  11. package/build/users/contracts/update-user.contract.js +14 -0
  12. package/build/users/index.js +20 -0
  13. package/build/users/user-role-assignments.models.js +107 -0
  14. package/build/users/user.models.js +80 -0
  15. package/build/users/users.api.js +17 -0
  16. package/package.json +15 -3
  17. package/app-menu/get.query.ts +0 -17
  18. package/app-menu/index.ts +0 -1
  19. package/common/constants/app-ability.constant.ts +0 -22
  20. package/common/constants/app-errors.constant.ts +0 -235
  21. package/common/constants/app-statuses.constant.ts +0 -26
  22. package/common/constants/array-splitter.constant.ts +0 -1
  23. package/common/constants/default-pagination-config.constant.ts +0 -5
  24. package/common/constants/domain-name.constant.ts +0 -8
  25. package/common/constants/entity.constant.ts +0 -10
  26. package/common/constants/http-method.constant.ts +0 -9
  27. package/common/constants/icon.constants.ts +0 -85
  28. package/common/constants/index.ts +0 -18
  29. package/common/constants/kind-of-app.constant.ts +0 -7
  30. package/common/constants/locales.constant.ts +0 -26
  31. package/common/constants/navigation-item-type.constant.ts +0 -6
  32. package/common/constants/order-direction.constant.ts +0 -10
  33. package/common/constants/role-types.constant.ts +0 -8
  34. package/common/constants/route-component-key.constants.ts +0 -5
  35. package/common/constants/slug.constant.ts +0 -8
  36. package/common/constants/time-zone.constant.ts +0 -4
  37. package/common/constants/translatable-field.constant.ts +0 -10
  38. package/common/index.ts +0 -5
  39. package/common/models/boolean-query-param.schema.ts +0 -8
  40. package/common/models/common-query-params.schema.ts +0 -10
  41. package/common/models/domain-name.schema.ts +0 -14
  42. package/common/models/icon-key.schema.ts +0 -4
  43. package/common/models/index.ts +0 -15
  44. package/common/models/info.schema.ts +0 -8
  45. package/common/models/language-keys.schema.ts +0 -4
  46. package/common/models/navigation-item.schemas.ts +0 -29
  47. package/common/models/order.schema.ts +0 -7
  48. package/common/models/pagination.schema.ts +0 -18
  49. package/common/models/search.schema.ts +0 -5
  50. package/common/models/slug.schema.ts +0 -14
  51. package/common/models/timestamp.schemas.ts +0 -14
  52. package/common/models/timezone.schema.ts +0 -10
  53. package/common/models/translations.schemas.ts +0 -14
  54. package/common/models/uuid.schemas.ts +0 -9
  55. package/common/types/index.ts +0 -1
  56. package/common/types/optionalized.type.ts +0 -40
  57. package/common/utils/create-api/create-api.ts +0 -28
  58. package/common/utils/create-api/index.ts +0 -2
  59. package/common/utils/create-api/types.ts +0 -34
  60. package/common/utils/index.ts +0 -2
  61. package/common/utils/zod-message-key/index.ts +0 -1
  62. package/common/utils/zod-message-key/types.ts +0 -7
  63. package/common/utils/zod-message-key/zod-message-key.util.ts +0 -31
  64. package/companies/company.models.ts +0 -11
  65. package/companies/index.ts +0 -1
  66. package/hotels/amenities/hotel-amenity.model.ts +0 -10
  67. package/hotels/amenities/index.ts +0 -1
  68. package/hotels/constants/hotel-amenity.constant.ts +0 -18
  69. package/hotels/constants/hotel-contact-type.constant.ts +0 -12
  70. package/hotels/constants/hotel-feature.constant.ts +0 -14
  71. package/hotels/constants/hotel-integration-connection-state.constant.ts +0 -13
  72. package/hotels/constants/hotel-integration-credential-status.constant.ts +0 -12
  73. package/hotels/constants/hotel-integration-provider.constant.ts +0 -11
  74. package/hotels/constants/hotel-integration-sync-status.constant.ts +0 -13
  75. package/hotels/constants/hotel-policy-type.constant.ts +0 -15
  76. package/hotels/constants/hotel-rating-source.constant.ts +0 -12
  77. package/hotels/constants/index.ts +0 -9
  78. package/hotels/contacts/hotel-contact.model.ts +0 -15
  79. package/hotels/contacts/index.ts +0 -1
  80. package/hotels/contracts/create-hotel.contract.ts +0 -16
  81. package/hotels/contracts/delete-hotel.contract.ts +0 -12
  82. package/hotels/contracts/find-hotel.contract.ts +0 -27
  83. package/hotels/contracts/find-many-hotels.contract.ts +0 -41
  84. package/hotels/contracts/index.ts +0 -5
  85. package/hotels/contracts/update-hotel.contract.ts +0 -17
  86. package/hotels/domains/contracts/find-hotel-domain-settings.contract.ts +0 -13
  87. package/hotels/domains/contracts/index.ts +0 -2
  88. package/hotels/domains/contracts/update-hotel-domain-settings.contract.ts +0 -16
  89. package/hotels/domains/hotel-domains.api.ts +0 -11
  90. package/hotels/domains/hotel-domains.schema.ts +0 -25
  91. package/hotels/domains/index.ts +0 -3
  92. package/hotels/features/hotel-feature.model.ts +0 -14
  93. package/hotels/features/index.ts +0 -1
  94. package/hotels/hotel.models.ts +0 -72
  95. package/hotels/hotels.api.ts +0 -22
  96. package/hotels/index.ts +0 -14
  97. package/hotels/integrations/configs/index.ts +0 -1
  98. package/hotels/integrations/configs/opera-integration-config.model.ts +0 -6
  99. package/hotels/integrations/contracts/create-hotel-integration.contract.ts +0 -21
  100. package/hotels/integrations/contracts/delete-hotel-integration.contract.ts +0 -14
  101. package/hotels/integrations/contracts/find-all-hotel-integrations.contract.ts +0 -18
  102. package/hotels/integrations/contracts/find-hotel-integration.contract.ts +0 -15
  103. package/hotels/integrations/contracts/index.ts +0 -5
  104. package/hotels/integrations/contracts/update-hotel-integration.contract.ts +0 -21
  105. package/hotels/integrations/hotel-integration.model.ts +0 -80
  106. package/hotels/integrations/hotel-integrations.api.ts +0 -16
  107. package/hotels/integrations/index.ts +0 -3
  108. package/hotels/location/hotel-location.model.ts +0 -17
  109. package/hotels/location/index.ts +0 -1
  110. package/hotels/policies/hotel-policy.model.ts +0 -16
  111. package/hotels/policies/index.ts +0 -1
  112. package/hotels/ratings/hotel-rating.model.ts +0 -15
  113. package/hotels/ratings/index.ts +0 -1
  114. package/hotels/sites/contracts/find-hotel-site-page-by-lang.contract.ts +0 -26
  115. package/hotels/sites/contracts/index.ts +0 -1
  116. package/hotels/sites/hotel-pages.api.ts +0 -24
  117. package/hotels/sites/index.ts +0 -2
  118. package/hotels/themes/constants/accent-colors.constant.ts +0 -18
  119. package/hotels/themes/constants/fonts.constant.ts +0 -9
  120. package/hotels/themes/constants/index.ts +0 -3
  121. package/hotels/themes/constants/radius.constant.ts +0 -12
  122. package/hotels/themes/contracts/find-hotel-theme.contract.ts +0 -13
  123. package/hotels/themes/contracts/index.ts +0 -1
  124. package/hotels/themes/hotel-themes.api.ts +0 -20
  125. package/hotels/themes/index.ts +0 -4
  126. package/hotels/themes/theme.models.ts +0 -13
  127. package/index.ts +0 -10
  128. package/pages/constants/block-type.constant.ts +0 -11
  129. package/pages/constants/cta-actions.constant.ts +0 -5
  130. package/pages/constants/hero.constants.ts +0 -18
  131. package/pages/constants/image-loading.constant.ts +0 -8
  132. package/pages/constants/index.ts +0 -5
  133. package/pages/constants/media.constants.ts +0 -20
  134. package/pages/index.ts +0 -2
  135. package/pages/models/blocks/base-block.schema.ts +0 -11
  136. package/pages/models/blocks/block.schemas.ts +0 -57
  137. package/pages/models/blocks/cta.schema.ts +0 -58
  138. package/pages/models/blocks/hero-block.schema.ts +0 -27
  139. package/pages/models/blocks/html-block.schema.ts +0 -14
  140. package/pages/models/blocks/index.ts +0 -6
  141. package/pages/models/blocks/media.schemas.ts +0 -66
  142. package/pages/models/index.ts +0 -2
  143. package/pages/models/page.schema.ts +0 -29
  144. package/permissions/contracts/create-permission.contract.ts +0 -18
  145. package/permissions/contracts/delete-permission.contract.ts +0 -12
  146. package/permissions/contracts/find-all-permission.contract.ts +0 -13
  147. package/permissions/contracts/find-many-permission.contract.ts +0 -40
  148. package/permissions/contracts/find-permission.contract.ts +0 -13
  149. package/permissions/contracts/index.ts +0 -6
  150. package/permissions/contracts/update-permission.contract.ts +0 -17
  151. package/permissions/index.ts +0 -3
  152. package/permissions/permission.models.ts +0 -37
  153. package/permissions/permissions.api.ts +0 -15
  154. package/permissions/permisson-conditions.model.ts +0 -7
  155. package/roles/contracts/create-role.contract.ts +0 -16
  156. package/roles/contracts/delete-role.contract.ts +0 -12
  157. package/roles/contracts/find-many-roles.contract.ts +0 -55
  158. package/roles/contracts/find-role.contract.ts +0 -13
  159. package/roles/contracts/index.ts +0 -5
  160. package/roles/contracts/update-role.contract.ts +0 -17
  161. package/roles/index.ts +0 -3
  162. package/roles/role.models.ts +0 -52
  163. package/roles/roles.api.ts +0 -14
  164. package/tenants/contracts/index.ts +0 -1
  165. package/tenants/contracts/resolve-tenant.contract.ts +0 -32
  166. package/tenants/index.ts +0 -3
  167. package/tenants/tenant.model.ts +0 -19
  168. package/tenants/tenants.api.ts +0 -10
  169. package/translate/contracts/index.ts +0 -2
  170. package/translate/contracts/translate-object.contract.ts +0 -54
  171. package/translate/contracts/translate-text.contract.ts +0 -24
  172. package/translate/index.ts +0 -2
  173. package/translate/translate.api.ts +0 -11
  174. package/translate/translate.schemas.ts +0 -7
  175. package/translations/index.ts +0 -4
  176. package/translations/resolve-translation-value-type.helper.ts +0 -14
  177. package/translations/translation-value-type-policy.ts +0 -22
  178. package/translations/translation-value-types.constant.ts +0 -10
  179. package/translations/translation.models.ts +0 -13
  180. package/tsconfig.json +0 -112
@@ -1,14 +0,0 @@
1
- import * as z from 'zod';
2
-
3
- export const TimestampSchema = z.object({
4
- createdAt: z.date(),
5
- updatedAt: z.date(),
6
- });
7
-
8
- export const TimestampWithDeletedSchema = TimestampSchema.extend({
9
- deletedAt: z.date().nullable(),
10
- });
11
-
12
- export const IsoDatetimeSchema = z.iso.datetime();
13
- export const IsoDateSchema = z.iso.date();
14
- export const IsoTimeSchema = z.iso.time();
@@ -1,10 +0,0 @@
1
- import * as z from 'zod';
2
- import { TIME_ZONE_CONFIG } from '../constants';
3
-
4
- export const TimezoneSchema = z.string().refine(value => TIME_ZONE_CONFIG.regex.test(value), {
5
- params: {
6
- messageKey: TIME_ZONE_CONFIG.messageKey,
7
- },
8
- });
9
-
10
- export type TTimezone = z.infer<typeof TimezoneSchema>;
@@ -1,14 +0,0 @@
1
- import * as z from 'zod';
2
- import { LanguageKeysSchema } from './language-keys.schema';
3
-
4
- export const makeTranslations = <T extends z.ZodObject>(schema: T) =>
5
- z
6
- .partialRecord(LanguageKeysSchema, schema)
7
- .refine(translations => Object.keys(translations).length > 0, {
8
- params: {
9
- messageKey: 'zod.translations.must_not_be_empty',
10
- },
11
- });
12
- export type TTranslations<T extends object> = Partial<
13
- Record<z.infer<typeof LanguageKeysSchema>, T>
14
- >;
@@ -1,9 +0,0 @@
1
- import * as z from 'zod';
2
- import { ARRAY_SPLITTER } from '../constants';
3
-
4
- export const UuidSchema = z.uuid();
5
- export const UuidArraySchema = z.array(UuidSchema);
6
-
7
- export const UuidArrayQueryParamSchema = z
8
- .union([z.string().transform(val => (val ? val.split(ARRAY_SPLITTER) : [])), z.array(z.string())])
9
- .pipe(UuidArraySchema);
@@ -1 +0,0 @@
1
- export * from './optionalized.type';
@@ -1,40 +0,0 @@
1
- /**
2
- * Utility type that converts properties of T that include undefined to optional properties.
3
- *
4
- * Для каждого ключа K, если undefined расширяет T[K] (то есть T[K] содержит undefined),
5
- * то в результирующем типе свойство K становится опциональным, а его тип – Exclude<T[K], undefined>.
6
- */
7
- export type TOptionalize<T> = {
8
- [K in keyof T as undefined extends T[K] ? K : never]?: T[K];
9
- } & {
10
- [K in keyof T as undefined extends T[K] ? never : K]: T[K];
11
- };
12
-
13
- /**
14
- * Helper type to merge intersections into a single object type.
15
- */
16
- export type TMerge<T> = { [K in keyof T]: T[K] };
17
-
18
- /**
19
- * Итоговый утилитарный тип, который превращает свойства с undefined в опциональные.
20
- */
21
- export type TOptionalized<T> = TMerge<TOptionalize<T>>;
22
-
23
- /**
24
- * DeepOptionalize: Рекурсивно применяет Optionalize ко всем вложенным объектам и массивам.
25
- */
26
- export type TDeepOptionalize<T> = T extends Date | null
27
- ? T
28
- : T extends Array<infer U>
29
- ? Array<TDeepOptionalize<U>>
30
- : T extends object
31
- ? TMerge<
32
- {
33
- // Если свойство не допускает undefined, оставляем его обязательным
34
- [K in keyof T as undefined extends T[K] ? never : K]: TDeepOptionalize<T[K]>;
35
- } & {
36
- // Если свойство допускает undefined, делаем его опциональным
37
- [K in keyof T as undefined extends T[K] ? K : never]?: TDeepOptionalize<T[K]>;
38
- }
39
- >
40
- : T;
@@ -1,28 +0,0 @@
1
- import { TApi, TController, TApiFunctionParams } from './types';
2
- // Универсальная функция для подстановки параметров в шаблонную строку.
3
- // Заменяет все вхождения вида ":key" на значение из объекта params.
4
- function substituteParams(template: string, params: Record<string, string | number>): string {
5
- return template.replace(/:(\w+)/g, (_, key) => {
6
- if (!(key in params)) {
7
- throw new Error(`Missing parameter: ${key}`);
8
- }
9
- return String(params[key]);
10
- });
11
- }
12
-
13
- // Функция генерации универсального API.
14
- export function createApi<T extends TController>({ prefix, endpoints }: T): TApi<T> {
15
- const api = {} as TApi<T>;
16
- for (const key in endpoints) {
17
- // Для каждого эндпоинта возвращаем функцию, которая принимает объект параметров.
18
- api[key as keyof T['endpoints']] = (
19
- params?: TApiFunctionParams<T['prefix'], T['endpoints'][typeof key]>,
20
- ) => {
21
- const usedParams = params ?? {};
22
- const computedPrefix = substituteParams(prefix, usedParams);
23
- const computedEndpoint = substituteParams(endpoints[key], usedParams);
24
- return `${computedPrefix}/${computedEndpoint}`;
25
- };
26
- }
27
- return api;
28
- }
@@ -1,2 +0,0 @@
1
- export * from './create-api';
2
- export type { TApi, TController } from './types';
@@ -1,34 +0,0 @@
1
- // Извлекает динамические сегменты вида :param из строки-шаблона.
2
- type TExtractPathParams<S extends string> = S extends `${infer _Start}:${infer Param}/${infer Rest}`
3
- ? Param | TExtractPathParams<`/${Rest}`>
4
- : S extends `${infer _Start}:${infer Param}`
5
- ? Param
6
- : never;
7
-
8
- // Если в шаблонной строке нет динамических сегментов, возвращает пустой объект,
9
- // иначе – объект с ключами, равными извлечённым параметрам, и значениями типа string | number.
10
- type TParamsFromTemplate<S extends string> = TExtractPathParams<S> extends never
11
- ? {}
12
- : {
13
- [K in TExtractPathParams<S> as K]: string | number;
14
- };
15
-
16
- // Определение контроллера с шаблонным префиксом и эндпоинтами.
17
- // Эндпоинты задаются как строки, в которых можно использовать динамические сегменты.
18
- export type TController = {
19
- prefix: string;
20
- endpoints: Record<string, string>;
21
- };
22
- export type TApiFunctionParams<P extends string, E extends string> = TParamsFromTemplate<P> &
23
- TParamsFromTemplate<E>;
24
- // Для каждого эндпоинта ожидаемые параметры – это объединение параметров из префикса и из самого эндпоинта.
25
- // Результирующий API: для каждого ключа из endpoints создаётся функция,
26
- // которая принимает параметры, объединяющие параметры из префикса контроллера и эндпоинта.
27
- export type TApi<
28
- T extends TController,
29
- TEndpoints extends Record<string, string> = T['endpoints'],
30
- > = {
31
- [K in keyof T['endpoints']]: {} extends TApiFunctionParams<T['prefix'], TEndpoints[K]>
32
- ? (params?: TApiFunctionParams<T['prefix'], TEndpoints[K]>) => string
33
- : (params: TApiFunctionParams<T['prefix'], TEndpoints[K]>) => string;
34
- };
@@ -1,2 +0,0 @@
1
- export * from './create-api';
2
- export * from './zod-message-key';
@@ -1 +0,0 @@
1
- export { getZodMessageKey } from './zod-message-key.util';
@@ -1,7 +0,0 @@
1
- import * as z from 'zod';
2
-
3
- export type TZodIssue = z.core.$ZodIssue;
4
- export type TCode = TZodIssue['code'];
5
- export type TIssueOf<C extends TCode> = Extract<TZodIssue, { code: C }>;
6
- export type THandler<C extends TCode> = (issue: TIssueOf<C>) => string;
7
- export type THandlerMap = Partial<{ [C in TCode]: THandler<C> }>;
@@ -1,31 +0,0 @@
1
- import * as z from 'zod';
2
- import { THandlerMap, TIssueOf, TZodIssue } from './types';
3
-
4
- // Базовая мапа обработчиков по кодам Zod v4
5
- const handlers = {
6
- invalid_type: i => `zod.invalid_type.${i.expected}`,
7
- invalid_format: i => {
8
- const format = String(i.format);
9
- return `zod.invalid_format.${format}`;
10
- },
11
-
12
- too_small: i => `zod.too_small.${i.origin}.${i.exact ? 'exact' : 'min'}`,
13
- too_big: i => `zod.too_big.${i.origin}.${i.exact ? 'exact' : 'max'}`,
14
-
15
- not_multiple_of: () => 'zod.not_multiple_of',
16
-
17
- unrecognized_keys: () => 'zod.unrecognized_keys',
18
- invalid_union: () => 'zod.invalid_union',
19
-
20
- invalid_key: i => `zod.invalid_key.${i.origin}`,
21
- invalid_element: i => `zod.invalid_element.${i.origin}`,
22
- invalid_value: () => 'zod.invalid_value',
23
- custom: i => (typeof i.params?.messageKey === 'string' ? i.params.messageKey : 'zod.custom'),
24
- } satisfies THandlerMap;
25
-
26
- export function getZodMessageKey(issue: TZodIssue): string {
27
- const handler = handlers[issue.code] as ((i: TIssueOf<typeof issue.code>) => string) | undefined;
28
- const tail = handler ? handler(issue) : 'zod.unknown';
29
-
30
- return `errors.${tail}`;
31
- }
@@ -1,11 +0,0 @@
1
- import * as z from 'zod';
2
- import { TimestampSchema, UuidSchema } from '../common';
3
-
4
- export const CompanyPersistedSchema = z
5
- .object({
6
- id: UuidSchema,
7
- inn: z.string(),
8
- isActive: z.boolean().default(true),
9
- })
10
- .extend(TimestampSchema.shape);
11
- export type TCompanyPersisted = z.infer<typeof CompanyPersistedSchema>;
@@ -1 +0,0 @@
1
- export * from './company.models';
@@ -1,10 +0,0 @@
1
- import * as z from 'zod';
2
- import { HOTEL_AMENITY_VALUES } from '../constants';
3
- import { UuidSchema } from '../../common';
4
-
5
- export const HotelAmenitySchema = z.object({
6
- hotelId: UuidSchema,
7
- amenityCode: z.enum(HOTEL_AMENITY_VALUES),
8
- isPrimary: z.boolean().default(false),
9
- });
10
- export type THotelAmenity = z.infer<typeof HotelAmenitySchema>;
@@ -1 +0,0 @@
1
- export * from './hotel-amenity.model';
@@ -1,18 +0,0 @@
1
- export const HOTEL_AMENITIES = {
2
- wifi: 'wifi',
3
- parking: 'parking',
4
- pool: 'pool',
5
- spa: 'spa',
6
- gym: 'gym',
7
- restaurant: 'restaurant',
8
- bar: 'bar',
9
- conferenceRoom: 'conferenceRoom',
10
- businessCenter: 'businessCenter',
11
- } as const;
12
-
13
- export type THotelAmenityCode = (typeof HOTEL_AMENITIES)[keyof typeof HOTEL_AMENITIES];
14
-
15
- export const HOTEL_AMENITY_VALUES = Object.values(HOTEL_AMENITIES) as [
16
- THotelAmenityCode,
17
- ...THotelAmenityCode[],
18
- ];
@@ -1,12 +0,0 @@
1
- export const HOTEL_CONTACT_TYPES = {
2
- mainPhone: 'mainPhone',
3
- reservations: 'reservations',
4
- sales: 'sales',
5
- } as const;
6
-
7
- export type THotelContactType = (typeof HOTEL_CONTACT_TYPES)[keyof typeof HOTEL_CONTACT_TYPES];
8
-
9
- export const HOTEL_CONTACT_TYPE_VALUES = Object.values(HOTEL_CONTACT_TYPES) as [
10
- THotelContactType,
11
- ...THotelContactType[],
12
- ];
@@ -1,14 +0,0 @@
1
- export const HOTEL_FEATURES = {
2
- site: 'site',
3
- services: 'services',
4
- digitalSignage: 'digitalSignage',
5
- hskRoomStatus: 'hskRoomStatus',
6
- fbBreakfastCheckin: 'fbBreakfastCheckin',
7
- } as const;
8
-
9
- export type THotelFeatureKey = (typeof HOTEL_FEATURES)[keyof typeof HOTEL_FEATURES];
10
-
11
- export const HOTEL_FEATURE_VALUES = Object.values(HOTEL_FEATURES) as [
12
- THotelFeatureKey,
13
- ...THotelFeatureKey[],
14
- ];
@@ -1,13 +0,0 @@
1
- export const HOTEL_INTEGRATION_CONNECTION_STATES = {
2
- offline: 'offline',
3
- connecting: 'connecting',
4
- online: 'online',
5
- degraded: 'degraded',
6
- } as const;
7
-
8
- export type THotelIntegrationConnectionState =
9
- (typeof HOTEL_INTEGRATION_CONNECTION_STATES)[keyof typeof HOTEL_INTEGRATION_CONNECTION_STATES];
10
-
11
- export const HOTEL_INTEGRATION_CONNECTION_STATE_VALUES = Object.values(
12
- HOTEL_INTEGRATION_CONNECTION_STATES,
13
- ) as [THotelIntegrationConnectionState, ...THotelIntegrationConnectionState[]];
@@ -1,12 +0,0 @@
1
- export const HOTEL_INTEGRATION_CREDENTIAL_STATUSES = {
2
- active: 'active',
3
- rotating: 'rotating',
4
- revoked: 'revoked',
5
- } as const;
6
-
7
- export type THotelIntegrationCredentialStatus =
8
- (typeof HOTEL_INTEGRATION_CREDENTIAL_STATUSES)[keyof typeof HOTEL_INTEGRATION_CREDENTIAL_STATUSES];
9
-
10
- export const HOTEL_INTEGRATION_CREDENTIAL_STATUS_VALUES = Object.values(
11
- HOTEL_INTEGRATION_CREDENTIAL_STATUSES,
12
- ) as [THotelIntegrationCredentialStatus, ...THotelIntegrationCredentialStatus[]];
@@ -1,11 +0,0 @@
1
- export const HOTEL_INTEGRATION_PROVIDERS = {
2
- opera: 'opera',
3
- } as const;
4
-
5
- export type THotelIntegrationProvider =
6
- (typeof HOTEL_INTEGRATION_PROVIDERS)[keyof typeof HOTEL_INTEGRATION_PROVIDERS];
7
-
8
- export const HOTEL_INTEGRATION_PROVIDER_VALUES = Object.values(HOTEL_INTEGRATION_PROVIDERS) as [
9
- THotelIntegrationProvider,
10
- ...THotelIntegrationProvider[],
11
- ];
@@ -1,13 +0,0 @@
1
- export const HOTEL_INTEGRATION_SYNC_STATUSES = {
2
- idle: 'idle',
3
- running: 'running',
4
- success: 'success',
5
- failed: 'failed',
6
- } as const;
7
-
8
- export type THotelIntegrationSyncStatus =
9
- (typeof HOTEL_INTEGRATION_SYNC_STATUSES)[keyof typeof HOTEL_INTEGRATION_SYNC_STATUSES];
10
-
11
- export const HOTEL_INTEGRATION_SYNC_STATUS_VALUES = Object.values(
12
- HOTEL_INTEGRATION_SYNC_STATUSES,
13
- ) as [THotelIntegrationSyncStatus, ...THotelIntegrationSyncStatus[]];
@@ -1,15 +0,0 @@
1
- export const HOTEL_POLICY_TYPES = {
2
- cancellation: 'cancellation',
3
- deposit: 'deposit',
4
- meal: 'meal',
5
- pet: 'pet',
6
- smoking: 'smoking',
7
- } as const;
8
-
9
- export type THotelPolicyType =
10
- (typeof HOTEL_POLICY_TYPES)[keyof typeof HOTEL_POLICY_TYPES];
11
-
12
- export const HOTEL_POLICY_TYPE_VALUES = Object.values(HOTEL_POLICY_TYPES) as [
13
- THotelPolicyType,
14
- ...THotelPolicyType[],
15
- ];
@@ -1,12 +0,0 @@
1
- export const HOTEL_RATING_SOURCES = {
2
- google: 'google',
3
- yandexMaps: 'yandexMaps',
4
- ostrovok: 'ostrovok',
5
- } as const;
6
-
7
- export type THotelRatingSource = (typeof HOTEL_RATING_SOURCES)[keyof typeof HOTEL_RATING_SOURCES];
8
-
9
- export const HOTEL_RATING_SOURCE_VALUES = Object.values(HOTEL_RATING_SOURCES) as [
10
- THotelRatingSource,
11
- ...THotelRatingSource[],
12
- ];
@@ -1,9 +0,0 @@
1
- export * from './hotel-amenity.constant';
2
- export * from './hotel-contact-type.constant';
3
- export * from './hotel-feature.constant';
4
- export * from './hotel-integration-connection-state.constant';
5
- export * from './hotel-integration-credential-status.constant';
6
- export * from './hotel-integration-provider.constant';
7
- export * from './hotel-integration-sync-status.constant';
8
- export * from './hotel-policy-type.constant';
9
- export * from './hotel-rating-source.constant';
@@ -1,15 +0,0 @@
1
- import * as z from 'zod';
2
- import { HOTEL_CONTACT_TYPE_VALUES } from '../constants';
3
- import { TimestampSchema, UuidSchema } from '../../common';
4
-
5
- export const HotelContactSchema = z
6
- .object({
7
- hotelId: UuidSchema,
8
- contactType: z.enum(HOTEL_CONTACT_TYPE_VALUES),
9
- value: z.string().min(1),
10
- isPublic: z.boolean().default(true),
11
- metadata: z.record(z.string(), z.unknown()).optional(),
12
- })
13
- .extend(TimestampSchema.shape);
14
-
15
- export type THotelContact = z.infer<typeof HotelContactSchema>;
@@ -1 +0,0 @@
1
- export * from './hotel-contact.model';
@@ -1,16 +0,0 @@
1
- import * as z from 'zod';
2
- import { HTTP_METHODS } from '../../common';
3
- import { HOTELS_API, HOTELS_CONTROLLER } from '../hotels.api';
4
- import { HotelWriteSchema, HotelDetailSchema } from '../hotel.models';
5
-
6
- export namespace CreateHotelContract {
7
- export const getUrl = HOTELS_API.create;
8
- export const endpoint = HOTELS_CONTROLLER.endpoints.create;
9
- export const httpMethod = HTTP_METHODS.post;
10
-
11
- export const RequestSchema = HotelWriteSchema;
12
- export type TRequest = z.infer<typeof RequestSchema>;
13
-
14
- export const ResponseSchema = HotelDetailSchema;
15
- export type TResponse = z.infer<typeof ResponseSchema>;
16
- }
@@ -1,12 +0,0 @@
1
- import * as z from 'zod';
2
- import { HTTP_METHODS } from '../../common';
3
- import { HOTELS_API, HOTELS_CONTROLLER } from '../hotels.api';
4
-
5
- export namespace DeleteHotelContract {
6
- export const getUrl = HOTELS_API.deleteById;
7
- export const endpoint = HOTELS_CONTROLLER.endpoints.deleteById;
8
- export const httpMethod = HTTP_METHODS.delete;
9
-
10
- export const ResponseSchema = z.void();
11
- export type TResponse = z.infer<typeof ResponseSchema>;
12
- }
@@ -1,27 +0,0 @@
1
- import * as z from 'zod';
2
- import { HTTP_METHODS } from '../../common';
3
- import { HotelDetailSchema } from '../hotel.models';
4
- import {
5
- HOTELS_API,
6
- HOTELS_BY_SLUG_API,
7
- HOTELS_BY_SLUG_CONTROLLER,
8
- HOTELS_CONTROLLER,
9
- } from '../hotels.api';
10
-
11
- export namespace FindHotelByIdContract {
12
- export const getUrl = HOTELS_API.findById;
13
- export const endpoint = HOTELS_CONTROLLER.endpoints.findById;
14
- export const httpMethod = HTTP_METHODS.get;
15
-
16
- export const ResponseSchema = HotelDetailSchema;
17
- export type TResponse = z.infer<typeof ResponseSchema>;
18
- }
19
-
20
- export namespace FindHotelBySlugContract {
21
- export const getUrl = HOTELS_BY_SLUG_API.find;
22
- export const endpoint = HOTELS_BY_SLUG_CONTROLLER.endpoints.find;
23
- export const httpMethod = HTTP_METHODS.get;
24
-
25
- export const ResponseSchema = HotelDetailSchema;
26
- export type TResponse = z.infer<typeof ResponseSchema>;
27
- }
@@ -1,41 +0,0 @@
1
- import * as z from 'zod';
2
- import { HTTP_METHODS, CommonQueryParamsSchema, PaginationResponseSchema } from '../../common';
3
- import { HotelListItemSchema } from '../hotel.models';
4
- import { HOTELS_API, HOTELS_CONTROLLER } from '../hotels.api';
5
-
6
- const BaseQuerySchema = HotelListItemSchema.pick({
7
- status: true,
8
- }).partial();
9
-
10
- const OrderBySchema = HotelListItemSchema.omit({
11
- id: true,
12
- }).keyof();
13
-
14
- const FindManyHotelsContractRequestSchema = BaseQuerySchema.extend({
15
- ...CommonQueryParamsSchema.shape,
16
- orderBy: OrderBySchema.optional(),
17
- });
18
-
19
- const FindManyHotelsContractResponseSchema = z
20
- .object({
21
- hotels: z.array(HotelListItemSchema),
22
- })
23
- .extend(PaginationResponseSchema.shape);
24
-
25
- export namespace FindManyHotelsContract {
26
- export const getUrl = HOTELS_API.findMany;
27
- export const endpoint = HOTELS_CONTROLLER.endpoints.findMany;
28
- export const httpMethod = HTTP_METHODS.get;
29
-
30
- export const BaseFilterSchema = BaseQuerySchema;
31
- export type TBaseFilter = z.infer<typeof BaseFilterSchema>;
32
-
33
- export const SORTING_KEYS = OrderBySchema.options;
34
- export type TSortingKey = z.infer<typeof OrderBySchema>;
35
-
36
- export const RequestSchema = FindManyHotelsContractRequestSchema;
37
- export type TRequest = z.infer<typeof RequestSchema>;
38
-
39
- export const ResponseSchema = FindManyHotelsContractResponseSchema;
40
- export type TResponse = z.infer<typeof ResponseSchema>;
41
- }
@@ -1,5 +0,0 @@
1
- export * from './find-hotel.contract';
2
- export * from './find-many-hotels.contract';
3
- export * from './update-hotel.contract';
4
- export * from './delete-hotel.contract';
5
- export * from './create-hotel.contract';
@@ -1,17 +0,0 @@
1
- import * as z from 'zod';
2
- import { HTTP_METHODS } from '../../common';
3
- import { HOTELS_API, HOTELS_CONTROLLER } from '../hotels.api';
4
- import { HotelDetailSchema } from '../hotel.models';
5
- import { CreateHotelContract } from './create-hotel.contract';
6
-
7
- export namespace UpdateHotelContract {
8
- export const getUrl = HOTELS_API.updateById;
9
- export const endpoint = HOTELS_CONTROLLER.endpoints.updateById;
10
- export const httpMethod = HTTP_METHODS.put;
11
-
12
- export const RequestSchema = CreateHotelContract.RequestSchema;
13
- export type TRequest = z.infer<typeof RequestSchema>;
14
-
15
- export const ResponseSchema = HotelDetailSchema;
16
- export type TResponse = z.infer<typeof ResponseSchema>;
17
- }
@@ -1,13 +0,0 @@
1
- import * as z from 'zod';
2
- import { HTTP_METHODS } from '../../../common';
3
- import { HOTEL_DOMAINS_API, HOTEL_DOMAINS_CONTROLLER } from '../hotel-domains.api';
4
- import { HotelDomainListSchema } from '../hotel-domains.schema';
5
-
6
- export namespace FindHotelDomainsContract {
7
- export const getUrl = HOTEL_DOMAINS_API.find;
8
- export const endpoint = HOTEL_DOMAINS_CONTROLLER.endpoints.find;
9
- export const httpMethod = HTTP_METHODS.get;
10
-
11
- export const ResponseSchema = HotelDomainListSchema;
12
- export type TResponse = z.infer<typeof ResponseSchema>;
13
- }
@@ -1,2 +0,0 @@
1
- export * from './find-hotel-domain-settings.contract';
2
- export * from './update-hotel-domain-settings.contract';
@@ -1,16 +0,0 @@
1
- import * as z from 'zod';
2
- import { HTTP_METHODS } from '../../../common';
3
- import { HOTEL_DOMAINS_API, HOTEL_DOMAINS_CONTROLLER } from '../hotel-domains.api';
4
- import { HotelDomainPersistedSchema, HotelDomainSchema } from '../hotel-domains.schema';
5
-
6
- export namespace UpdateHotelDomainContract {
7
- export const getUrl = HOTEL_DOMAINS_API.update;
8
- export const endpoint = HOTEL_DOMAINS_CONTROLLER.endpoints.update;
9
- export const httpMethod = HTTP_METHODS.put;
10
-
11
- export const RequestSchema = HotelDomainSchema;
12
- export type TRequest = z.infer<typeof RequestSchema>;
13
-
14
- export const ResponseSchema = HotelDomainPersistedSchema;
15
- export type TResponse = z.infer<typeof ResponseSchema>;
16
- }
@@ -1,11 +0,0 @@
1
- import { createApi, TController } from '../../common/utils';
2
-
3
- export const HOTEL_DOMAINS_CONTROLLER = {
4
- prefix: 'hotels/by-id/:hotelId/domains',
5
- endpoints: {
6
- find: '',
7
- update: '',
8
- },
9
- } as const satisfies TController;
10
-
11
- export const HOTEL_DOMAINS_API = createApi(HOTEL_DOMAINS_CONTROLLER);
@@ -1,25 +0,0 @@
1
- import * as z from 'zod';
2
- import {
3
- DomainNameSchema,
4
- IsoDatetimeSchema,
5
- KIND_OF_APP_VALUES,
6
- TimestampSchema,
7
- UuidSchema,
8
- } from '../../common';
9
-
10
- export const HotelDomainSchema = z.object({
11
- kindOfApp: z.enum(KIND_OF_APP_VALUES),
12
- customDomain: DomainNameSchema.optional(),
13
- isCustomDomainVerified: z.boolean().default(false),
14
- customDomainVerifiedAt: IsoDatetimeSchema.optional(),
15
- });
16
-
17
- export const HotelDomainPersistedSchema = HotelDomainSchema.extend({
18
- id: UuidSchema,
19
- hotelId: UuidSchema,
20
- }).extend(TimestampSchema.shape);
21
-
22
- export const HotelDomainListSchema = z.array(HotelDomainPersistedSchema);
23
-
24
- export type THotelDomain = z.infer<typeof HotelDomainSchema>;
25
- export type THotelDomainPersisted = z.infer<typeof HotelDomainPersistedSchema>;
@@ -1,3 +0,0 @@
1
- export * from './hotel-domains.schema';
2
- export * from './hotel-domains.api';
3
- export * from './contracts';
@@ -1,14 +0,0 @@
1
- import * as z from 'zod';
2
- import { TimestampSchema } from '../../common';
3
- import { HOTEL_FEATURE_VALUES } from '../constants';
4
-
5
- export const HotelFeatureSchema = z
6
- .object({
7
- hotelId: z.uuid(),
8
- feature: z.enum(HOTEL_FEATURE_VALUES),
9
- enabled: z.boolean(),
10
- metadata: z.record(z.string(), z.unknown()).optional(),
11
- })
12
- .extend(TimestampSchema.shape);
13
-
14
- export type THotelFeature = z.infer<typeof HotelFeatureSchema>;
@@ -1 +0,0 @@
1
- export * from './hotel-feature.model';