@mamindom/contracts 1.0.60 → 1.0.62

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.
@@ -0,0 +1,317 @@
1
+ import { Observable } from "rxjs";
2
+ import { DeleteResponse, PaginationMeta, PaginationRequest, SuccessResponse } from "./common_post";
3
+ export declare const protobufPackage = "content.v1";
4
+ export declare enum BannerPlacement {
5
+ BANNER_PLACEMENT_UNSPECIFIED = 0,
6
+ BANNER_PLACEMENT_HOME_HERO = 1,
7
+ BANNER_PLACEMENT_HOME_SECONDARY = 2,
8
+ BANNER_PLACEMENT_CATEGORY_TOP = 3,
9
+ BANNER_PLACEMENT_PROMO = 4,
10
+ BANNER_PLACEMENT_SIDEBAR = 5,
11
+ BANNER_PLACEMENT_CUSTOM = 6,
12
+ UNRECOGNIZED = -1
13
+ }
14
+ export interface BannerListItemResponse {
15
+ id: string;
16
+ slug: string;
17
+ name: {
18
+ [key: string]: string;
19
+ };
20
+ placement: BannerPlacement;
21
+ status: boolean;
22
+ sortOrder: number;
23
+ categoryId?: string | undefined;
24
+ startDate?: string | undefined;
25
+ endDate?: string | undefined;
26
+ slidesCount: number;
27
+ }
28
+ export interface BannerListItemResponse_NameEntry {
29
+ key: string;
30
+ value: string;
31
+ }
32
+ export interface BannerDetailResponse {
33
+ id: string;
34
+ slug: string;
35
+ name: {
36
+ [key: string]: string;
37
+ };
38
+ placement: BannerPlacement;
39
+ status: boolean;
40
+ sortOrder: number;
41
+ categoryId?: string | undefined;
42
+ startDate?: string | undefined;
43
+ endDate?: string | undefined;
44
+ autoplay: boolean;
45
+ intervalMs: number;
46
+ createdById: string;
47
+ slides: BannerSlideResponse[];
48
+ }
49
+ export interface BannerDetailResponse_NameEntry {
50
+ key: string;
51
+ value: string;
52
+ }
53
+ export interface BannerSlideResponse {
54
+ id: string;
55
+ image: string;
56
+ imageId: string;
57
+ mobileImage?: string | undefined;
58
+ mobileImageId?: string | undefined;
59
+ title: {
60
+ [key: string]: string;
61
+ };
62
+ subtitle: {
63
+ [key: string]: string;
64
+ };
65
+ buttons: BannerSlideButton[];
66
+ buttonsPosition?: ElementPosition | undefined;
67
+ links: BannerSlideLink[];
68
+ linksPosition?: ElementPosition | undefined;
69
+ linksLayout?: string | undefined;
70
+ styling: string;
71
+ sortOrder: number;
72
+ }
73
+ export interface BannerSlideResponse_TitleEntry {
74
+ key: string;
75
+ value: string;
76
+ }
77
+ export interface BannerSlideResponse_SubtitleEntry {
78
+ key: string;
79
+ value: string;
80
+ }
81
+ export interface GetBannersRequest {
82
+ pagination: PaginationRequest | undefined;
83
+ placement?: BannerPlacement | undefined;
84
+ status?: boolean | undefined;
85
+ }
86
+ export interface GetBannersResponse {
87
+ items: BannerListItemResponse[];
88
+ meta: PaginationMeta | undefined;
89
+ }
90
+ export interface GetBannerRequest {
91
+ id: string;
92
+ slug?: string | undefined;
93
+ }
94
+ export interface CreateBannerRequest {
95
+ slug?: string | undefined;
96
+ name: {
97
+ [key: string]: string;
98
+ };
99
+ placement: BannerPlacement;
100
+ status: boolean;
101
+ sortOrder: number;
102
+ categoryId?: string | undefined;
103
+ startDate?: string | undefined;
104
+ endDate?: string | undefined;
105
+ autoplay: boolean;
106
+ intervalMs: number;
107
+ createdById: string;
108
+ slides: CreateBannerSlidePayload[];
109
+ }
110
+ export interface CreateBannerRequest_NameEntry {
111
+ key: string;
112
+ value: string;
113
+ }
114
+ export interface UpdateBannerRequest {
115
+ id: string;
116
+ slug?: string | undefined;
117
+ name: {
118
+ [key: string]: string;
119
+ };
120
+ placement?: BannerPlacement | undefined;
121
+ status?: boolean | undefined;
122
+ sortOrder?: number | undefined;
123
+ categoryId?: string | undefined;
124
+ startDate?: string | undefined;
125
+ endDate?: string | undefined;
126
+ autoplay?: boolean | undefined;
127
+ intervalMs?: number | undefined;
128
+ }
129
+ export interface UpdateBannerRequest_NameEntry {
130
+ key: string;
131
+ value: string;
132
+ }
133
+ export interface DeleteBannerRequest {
134
+ id: string;
135
+ }
136
+ export interface CreateBannerSlidePayload {
137
+ image: string;
138
+ imageId: string;
139
+ mobileImage?: string | undefined;
140
+ mobileImageId?: string | undefined;
141
+ title: {
142
+ [key: string]: string;
143
+ };
144
+ subtitle: {
145
+ [key: string]: string;
146
+ };
147
+ buttonText: {
148
+ [key: string]: string;
149
+ };
150
+ buttonLink?: string | undefined;
151
+ styling: string;
152
+ sortOrder: number;
153
+ }
154
+ export interface CreateBannerSlidePayload_TitleEntry {
155
+ key: string;
156
+ value: string;
157
+ }
158
+ export interface CreateBannerSlidePayload_SubtitleEntry {
159
+ key: string;
160
+ value: string;
161
+ }
162
+ export interface CreateBannerSlidePayload_ButtonTextEntry {
163
+ key: string;
164
+ value: string;
165
+ }
166
+ export interface CreateBannerSlideRequest {
167
+ bannerId: string;
168
+ image: string;
169
+ imageId: string;
170
+ mobileImage?: string | undefined;
171
+ mobileImageId?: string | undefined;
172
+ title: {
173
+ [key: string]: string;
174
+ };
175
+ subtitle: {
176
+ [key: string]: string;
177
+ };
178
+ buttonText: {
179
+ [key: string]: string;
180
+ };
181
+ buttonLink?: string | undefined;
182
+ styling: string;
183
+ sortOrder: number;
184
+ }
185
+ export interface CreateBannerSlideRequest_TitleEntry {
186
+ key: string;
187
+ value: string;
188
+ }
189
+ export interface CreateBannerSlideRequest_SubtitleEntry {
190
+ key: string;
191
+ value: string;
192
+ }
193
+ export interface CreateBannerSlideRequest_ButtonTextEntry {
194
+ key: string;
195
+ value: string;
196
+ }
197
+ export interface UpdateBannerSlideRequest {
198
+ id: string;
199
+ image?: string | undefined;
200
+ imageId?: string | undefined;
201
+ mobileImage?: string | undefined;
202
+ mobileImageId?: string | undefined;
203
+ title: {
204
+ [key: string]: string;
205
+ };
206
+ subtitle: {
207
+ [key: string]: string;
208
+ };
209
+ buttonText: {
210
+ [key: string]: string;
211
+ };
212
+ buttonLink?: string | undefined;
213
+ styling?: string | undefined;
214
+ sortOrder?: number | undefined;
215
+ }
216
+ export interface UpdateBannerSlideRequest_TitleEntry {
217
+ key: string;
218
+ value: string;
219
+ }
220
+ export interface UpdateBannerSlideRequest_SubtitleEntry {
221
+ key: string;
222
+ value: string;
223
+ }
224
+ export interface UpdateBannerSlideRequest_ButtonTextEntry {
225
+ key: string;
226
+ value: string;
227
+ }
228
+ export interface DeleteBannerSlideRequest {
229
+ id: string;
230
+ }
231
+ export interface SlideOrderItem {
232
+ id: string;
233
+ sortOrder: number;
234
+ }
235
+ export interface UpdateSlideOrderRequest {
236
+ bannerId: string;
237
+ items: SlideOrderItem[];
238
+ }
239
+ export interface GetBannersByPlacementRequest {
240
+ placement: BannerPlacement;
241
+ categoryId?: string | undefined;
242
+ lang?: string | undefined;
243
+ }
244
+ export interface PublicBannerResponse {
245
+ id: string;
246
+ slides: PublicSlideResponse[];
247
+ autoplay: boolean;
248
+ intervalMs: number;
249
+ }
250
+ export interface PublicSlideResponse {
251
+ image: string;
252
+ mobileImage?: string | undefined;
253
+ title?: string | undefined;
254
+ subtitle?: string | undefined;
255
+ buttons: BannerSlideButton[];
256
+ buttonsPosition?: ElementPosition | undefined;
257
+ links: BannerSlideLink[];
258
+ linksPosition?: ElementPosition | undefined;
259
+ linksLayout?: string | undefined;
260
+ styling: string;
261
+ }
262
+ export interface GetBannersByPlacementResponse {
263
+ items: PublicBannerResponse[];
264
+ }
265
+ export interface ElementPosition {
266
+ vertical: string;
267
+ horizontal: string;
268
+ }
269
+ export interface BannerSlideButton {
270
+ text: {
271
+ [key: string]: string;
272
+ };
273
+ href: string;
274
+ variant?: string | undefined;
275
+ }
276
+ export interface BannerSlideButton_TextEntry {
277
+ key: string;
278
+ value: string;
279
+ }
280
+ export interface BannerSlideLink {
281
+ text: {
282
+ [key: string]: string;
283
+ };
284
+ href: string;
285
+ categoryId?: string | undefined;
286
+ }
287
+ export interface BannerSlideLink_TextEntry {
288
+ key: string;
289
+ value: string;
290
+ }
291
+ export declare const CONTENT_V1_PACKAGE_NAME = "content.v1";
292
+ export interface BannerServiceClient {
293
+ getBanners(request: GetBannersRequest): Observable<GetBannersResponse>;
294
+ getBanner(request: GetBannerRequest): Observable<BannerDetailResponse>;
295
+ createBanner(request: CreateBannerRequest): Observable<BannerDetailResponse>;
296
+ updateBanner(request: UpdateBannerRequest): Observable<BannerDetailResponse>;
297
+ deleteBanner(request: DeleteBannerRequest): Observable<DeleteResponse>;
298
+ createBannerSlide(request: CreateBannerSlideRequest): Observable<BannerSlideResponse>;
299
+ updateBannerSlide(request: UpdateBannerSlideRequest): Observable<BannerSlideResponse>;
300
+ deleteBannerSlide(request: DeleteBannerSlideRequest): Observable<DeleteResponse>;
301
+ updateSlideOrder(request: UpdateSlideOrderRequest): Observable<SuccessResponse>;
302
+ getBannersByPlacement(request: GetBannersByPlacementRequest): Observable<GetBannersByPlacementResponse>;
303
+ }
304
+ export interface BannerServiceController {
305
+ getBanners(request: GetBannersRequest): Promise<GetBannersResponse> | Observable<GetBannersResponse> | GetBannersResponse;
306
+ getBanner(request: GetBannerRequest): Promise<BannerDetailResponse> | Observable<BannerDetailResponse> | BannerDetailResponse;
307
+ createBanner(request: CreateBannerRequest): Promise<BannerDetailResponse> | Observable<BannerDetailResponse> | BannerDetailResponse;
308
+ updateBanner(request: UpdateBannerRequest): Promise<BannerDetailResponse> | Observable<BannerDetailResponse> | BannerDetailResponse;
309
+ deleteBanner(request: DeleteBannerRequest): Promise<DeleteResponse> | Observable<DeleteResponse> | DeleteResponse;
310
+ createBannerSlide(request: CreateBannerSlideRequest): Promise<BannerSlideResponse> | Observable<BannerSlideResponse> | BannerSlideResponse;
311
+ updateBannerSlide(request: UpdateBannerSlideRequest): Promise<BannerSlideResponse> | Observable<BannerSlideResponse> | BannerSlideResponse;
312
+ deleteBannerSlide(request: DeleteBannerSlideRequest): Promise<DeleteResponse> | Observable<DeleteResponse> | DeleteResponse;
313
+ updateSlideOrder(request: UpdateSlideOrderRequest): Promise<SuccessResponse> | Observable<SuccessResponse> | SuccessResponse;
314
+ getBannersByPlacement(request: GetBannersByPlacementRequest): Promise<GetBannersByPlacementResponse> | Observable<GetBannersByPlacementResponse> | GetBannersByPlacementResponse;
315
+ }
316
+ export declare function BannerServiceControllerMethods(): (constructor: Function) => void;
317
+ export declare const BANNER_SERVICE_NAME = "BannerService";
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ // Code generated by protoc-gen-ts_proto. DO NOT EDIT.
3
+ // versions:
4
+ // protoc-gen-ts_proto v2.11.4
5
+ // protoc v3.21.12
6
+ // source: banner.proto
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.BANNER_SERVICE_NAME = exports.CONTENT_V1_PACKAGE_NAME = exports.BannerPlacement = exports.protobufPackage = void 0;
9
+ exports.BannerServiceControllerMethods = BannerServiceControllerMethods;
10
+ /* eslint-disable */
11
+ const microservices_1 = require("@nestjs/microservices");
12
+ exports.protobufPackage = "content.v1";
13
+ var BannerPlacement;
14
+ (function (BannerPlacement) {
15
+ BannerPlacement[BannerPlacement["BANNER_PLACEMENT_UNSPECIFIED"] = 0] = "BANNER_PLACEMENT_UNSPECIFIED";
16
+ BannerPlacement[BannerPlacement["BANNER_PLACEMENT_HOME_HERO"] = 1] = "BANNER_PLACEMENT_HOME_HERO";
17
+ BannerPlacement[BannerPlacement["BANNER_PLACEMENT_HOME_SECONDARY"] = 2] = "BANNER_PLACEMENT_HOME_SECONDARY";
18
+ BannerPlacement[BannerPlacement["BANNER_PLACEMENT_CATEGORY_TOP"] = 3] = "BANNER_PLACEMENT_CATEGORY_TOP";
19
+ BannerPlacement[BannerPlacement["BANNER_PLACEMENT_PROMO"] = 4] = "BANNER_PLACEMENT_PROMO";
20
+ BannerPlacement[BannerPlacement["BANNER_PLACEMENT_SIDEBAR"] = 5] = "BANNER_PLACEMENT_SIDEBAR";
21
+ BannerPlacement[BannerPlacement["BANNER_PLACEMENT_CUSTOM"] = 6] = "BANNER_PLACEMENT_CUSTOM";
22
+ BannerPlacement[BannerPlacement["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
23
+ })(BannerPlacement || (exports.BannerPlacement = BannerPlacement = {}));
24
+ exports.CONTENT_V1_PACKAGE_NAME = "content.v1";
25
+ function BannerServiceControllerMethods() {
26
+ return function (constructor) {
27
+ const grpcMethods = [
28
+ "getBanners",
29
+ "getBanner",
30
+ "createBanner",
31
+ "updateBanner",
32
+ "deleteBanner",
33
+ "createBannerSlide",
34
+ "updateBannerSlide",
35
+ "deleteBannerSlide",
36
+ "updateSlideOrder",
37
+ "getBannersByPlacement",
38
+ ];
39
+ for (const method of grpcMethods) {
40
+ const descriptor = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
41
+ (0, microservices_1.GrpcMethod)("BannerService", method)(constructor.prototype[method], method, descriptor);
42
+ }
43
+ const grpcStreamMethods = [];
44
+ for (const method of grpcStreamMethods) {
45
+ const descriptor = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
46
+ (0, microservices_1.GrpcStreamMethod)("BannerService", method)(constructor.prototype[method], method, descriptor);
47
+ }
48
+ };
49
+ }
50
+ exports.BANNER_SERVICE_NAME = "BannerService";
@@ -0,0 +1,237 @@
1
+ syntax = "proto3";
2
+
3
+ package content.v1;
4
+
5
+ import "common_post.proto";
6
+
7
+ service BannerService {
8
+
9
+ rpc GetBanners (GetBannersRequest) returns (GetBannersResponse);
10
+ rpc GetBanner (GetBannerRequest) returns (BannerDetailResponse);
11
+ rpc CreateBanner (CreateBannerRequest) returns (BannerDetailResponse);
12
+ rpc UpdateBanner (UpdateBannerRequest) returns (BannerDetailResponse);
13
+ rpc DeleteBanner (DeleteBannerRequest) returns (DeleteResponse);
14
+
15
+
16
+ rpc CreateBannerSlide (CreateBannerSlideRequest) returns (BannerSlideResponse);
17
+ rpc UpdateBannerSlide (UpdateBannerSlideRequest) returns (BannerSlideResponse);
18
+ rpc DeleteBannerSlide (DeleteBannerSlideRequest) returns (DeleteResponse);
19
+ rpc UpdateSlideOrder (UpdateSlideOrderRequest) returns (SuccessResponse);
20
+
21
+
22
+ rpc GetBannersByPlacement (GetBannersByPlacementRequest) returns (GetBannersByPlacementResponse);
23
+ }
24
+
25
+ enum BannerPlacement {
26
+ BANNER_PLACEMENT_UNSPECIFIED = 0;
27
+ BANNER_PLACEMENT_HOME_HERO = 1;
28
+ BANNER_PLACEMENT_HOME_SECONDARY = 2;
29
+ BANNER_PLACEMENT_CATEGORY_TOP = 3;
30
+ BANNER_PLACEMENT_PROMO = 4;
31
+ BANNER_PLACEMENT_SIDEBAR = 5;
32
+ BANNER_PLACEMENT_CUSTOM = 6;
33
+ }
34
+
35
+
36
+ message BannerListItemResponse {
37
+ string id = 1;
38
+ string slug = 2;
39
+ map<string, string> name = 3;
40
+ BannerPlacement placement = 4;
41
+ bool status = 5;
42
+ int32 sort_order = 6;
43
+ optional string category_id = 7;
44
+ optional string start_date = 8;
45
+ optional string end_date = 9;
46
+ int32 slides_count = 10;
47
+ }
48
+
49
+ message BannerDetailResponse {
50
+ string id = 1;
51
+ string slug = 2;
52
+ map<string, string> name = 3;
53
+ BannerPlacement placement = 4;
54
+ bool status = 5;
55
+ int32 sort_order = 6;
56
+ optional string category_id = 7;
57
+ optional string start_date = 8;
58
+ optional string end_date = 9;
59
+ bool autoplay = 10;
60
+ int32 interval_ms = 11;
61
+ string created_by_id = 12;
62
+ repeated BannerSlideResponse slides = 13;
63
+ }
64
+
65
+ message BannerSlideResponse {
66
+ string id = 1;
67
+ string image = 2;
68
+ string image_id = 3;
69
+ optional string mobile_image = 4;
70
+ optional string mobile_image_id = 5;
71
+ map<string, string> title = 6;
72
+ map<string, string> subtitle = 7;
73
+
74
+ repeated BannerSlideButton buttons = 8;
75
+ optional ElementPosition buttons_position = 9;
76
+ repeated BannerSlideLink links = 10;
77
+ optional ElementPosition links_position = 11;
78
+ optional string links_layout = 12;
79
+
80
+ string styling = 13;
81
+ int32 sort_order = 14;
82
+ }
83
+
84
+
85
+ message GetBannersRequest {
86
+ PaginationRequest pagination = 1;
87
+ optional BannerPlacement placement = 2;
88
+ optional bool status = 3;
89
+ }
90
+
91
+ message GetBannersResponse {
92
+ repeated BannerListItemResponse items = 1;
93
+ PaginationMeta meta = 2;
94
+ }
95
+
96
+ message GetBannerRequest {
97
+ string id = 1;
98
+ optional string slug = 2;
99
+ }
100
+
101
+ message CreateBannerRequest {
102
+ optional string slug = 1;
103
+ map<string, string> name = 2;
104
+ BannerPlacement placement = 3;
105
+ bool status = 4;
106
+ int32 sort_order = 5;
107
+ optional string category_id = 6;
108
+ optional string start_date = 7;
109
+ optional string end_date = 8;
110
+ bool autoplay = 9;
111
+ int32 interval_ms = 10;
112
+ string created_by_id = 11;
113
+ repeated CreateBannerSlidePayload slides = 12;
114
+ }
115
+
116
+ message UpdateBannerRequest {
117
+ string id = 1;
118
+ optional string slug = 2;
119
+ map<string, string> name = 3;
120
+ optional BannerPlacement placement = 4;
121
+ optional bool status = 5;
122
+ optional int32 sort_order = 6;
123
+ optional string category_id = 7;
124
+ optional string start_date = 8;
125
+ optional string end_date = 9;
126
+ optional bool autoplay = 10;
127
+ optional int32 interval_ms = 11;
128
+ }
129
+
130
+ message DeleteBannerRequest {
131
+ string id = 1;
132
+ }
133
+
134
+ message CreateBannerSlidePayload {
135
+ string image = 1;
136
+ string image_id = 2;
137
+ optional string mobile_image = 3;
138
+ optional string mobile_image_id = 4;
139
+ map<string, string> title = 5;
140
+ map<string, string> subtitle = 6;
141
+ map<string, string> button_text = 7;
142
+ optional string button_link = 8;
143
+ string styling = 9;
144
+ int32 sort_order = 10;
145
+ }
146
+
147
+ message CreateBannerSlideRequest {
148
+ string banner_id = 1;
149
+ string image = 2;
150
+ string image_id = 3;
151
+ optional string mobile_image = 4;
152
+ optional string mobile_image_id = 5;
153
+ map<string, string> title = 6;
154
+ map<string, string> subtitle = 7;
155
+ map<string, string> button_text = 8;
156
+ optional string button_link = 9;
157
+ string styling = 10;
158
+ int32 sort_order = 11;
159
+ }
160
+
161
+ message UpdateBannerSlideRequest {
162
+ string id = 1;
163
+ optional string image = 2;
164
+ optional string image_id = 3;
165
+ optional string mobile_image = 4;
166
+ optional string mobile_image_id = 5;
167
+ map<string, string> title = 6;
168
+ map<string, string> subtitle = 7;
169
+ map<string, string> button_text = 8;
170
+ optional string button_link = 9;
171
+ optional string styling = 10;
172
+ optional int32 sort_order = 11;
173
+ }
174
+
175
+ message DeleteBannerSlideRequest {
176
+ string id = 1;
177
+ }
178
+
179
+ message SlideOrderItem {
180
+ string id = 1;
181
+ int32 sort_order = 2;
182
+ }
183
+
184
+ message UpdateSlideOrderRequest {
185
+ string banner_id = 1;
186
+ repeated SlideOrderItem items = 2;
187
+ }
188
+
189
+
190
+ message GetBannersByPlacementRequest {
191
+ BannerPlacement placement = 1;
192
+ optional string category_id = 2;
193
+ optional string lang = 3;
194
+ }
195
+
196
+ message PublicBannerResponse {
197
+ string id = 1;
198
+ repeated PublicSlideResponse slides = 2;
199
+ bool autoplay = 3;
200
+ int32 interval_ms = 4;
201
+ }
202
+
203
+ message PublicSlideResponse {
204
+ string image = 1;
205
+ optional string mobile_image = 2;
206
+ optional string title = 3;
207
+ optional string subtitle = 4;
208
+
209
+ repeated BannerSlideButton buttons = 5;
210
+ optional ElementPosition buttons_position = 6;
211
+ repeated BannerSlideLink links = 7;
212
+ optional ElementPosition links_position = 8;
213
+ optional string links_layout = 9;
214
+
215
+ string styling = 10;
216
+ }
217
+
218
+ message GetBannersByPlacementResponse {
219
+ repeated PublicBannerResponse items = 1;
220
+ }
221
+
222
+ message ElementPosition {
223
+ string vertical = 1;
224
+ string horizontal = 2;
225
+ }
226
+
227
+ message BannerSlideButton {
228
+ map<string, string> text = 1;
229
+ string href = 2;
230
+ optional string variant = 3;
231
+ }
232
+
233
+ message BannerSlideLink {
234
+ map<string, string> text = 1;
235
+ string href = 2;
236
+ optional string category_id = 3;
237
+ }
@@ -21,4 +21,5 @@ export declare const PROTO_PATHS: {
21
21
  readonly POST_COMMENT: string;
22
22
  readonly POST_TAG: string;
23
23
  readonly POST_VERSION: string;
24
+ readonly BANNER: string;
24
25
  };
@@ -24,5 +24,6 @@ exports.PROTO_PATHS = {
24
24
  POST_CATEGORY: (0, node_path_1.join)(__dirname, '../../proto/post_category.proto'),
25
25
  POST_COMMENT: (0, node_path_1.join)(__dirname, '../../proto/post_comment.proto'),
26
26
  POST_TAG: (0, node_path_1.join)(__dirname, '../../proto/post_tag.proto'),
27
- POST_VERSION: (0, node_path_1.join)(__dirname, '../../proto/post_version.proto')
27
+ POST_VERSION: (0, node_path_1.join)(__dirname, '../../proto/post_version.proto'),
28
+ BANNER: (0, node_path_1.join)(__dirname, '../../proto/banner.proto')
28
29
  };
package/gen/banner.ts ADDED
@@ -0,0 +1,397 @@
1
+ // Code generated by protoc-gen-ts_proto. DO NOT EDIT.
2
+ // versions:
3
+ // protoc-gen-ts_proto v2.11.4
4
+ // protoc v3.21.12
5
+ // source: banner.proto
6
+
7
+ /* eslint-disable */
8
+ import { GrpcMethod, GrpcStreamMethod } from "@nestjs/microservices";
9
+ import { Observable } from "rxjs";
10
+ import { DeleteResponse, PaginationMeta, PaginationRequest, SuccessResponse } from "./common_post";
11
+
12
+ export const protobufPackage = "content.v1";
13
+
14
+ export enum BannerPlacement {
15
+ BANNER_PLACEMENT_UNSPECIFIED = 0,
16
+ BANNER_PLACEMENT_HOME_HERO = 1,
17
+ BANNER_PLACEMENT_HOME_SECONDARY = 2,
18
+ BANNER_PLACEMENT_CATEGORY_TOP = 3,
19
+ BANNER_PLACEMENT_PROMO = 4,
20
+ BANNER_PLACEMENT_SIDEBAR = 5,
21
+ BANNER_PLACEMENT_CUSTOM = 6,
22
+ UNRECOGNIZED = -1,
23
+ }
24
+
25
+ export interface BannerListItemResponse {
26
+ id: string;
27
+ slug: string;
28
+ name: { [key: string]: string };
29
+ placement: BannerPlacement;
30
+ status: boolean;
31
+ sortOrder: number;
32
+ categoryId?: string | undefined;
33
+ startDate?: string | undefined;
34
+ endDate?: string | undefined;
35
+ slidesCount: number;
36
+ }
37
+
38
+ export interface BannerListItemResponse_NameEntry {
39
+ key: string;
40
+ value: string;
41
+ }
42
+
43
+ export interface BannerDetailResponse {
44
+ id: string;
45
+ slug: string;
46
+ name: { [key: string]: string };
47
+ placement: BannerPlacement;
48
+ status: boolean;
49
+ sortOrder: number;
50
+ categoryId?: string | undefined;
51
+ startDate?: string | undefined;
52
+ endDate?: string | undefined;
53
+ autoplay: boolean;
54
+ intervalMs: number;
55
+ createdById: string;
56
+ slides: BannerSlideResponse[];
57
+ }
58
+
59
+ export interface BannerDetailResponse_NameEntry {
60
+ key: string;
61
+ value: string;
62
+ }
63
+
64
+ export interface BannerSlideResponse {
65
+ id: string;
66
+ image: string;
67
+ imageId: string;
68
+ mobileImage?: string | undefined;
69
+ mobileImageId?: string | undefined;
70
+ title: { [key: string]: string };
71
+ subtitle: { [key: string]: string };
72
+ buttons: BannerSlideButton[];
73
+ buttonsPosition?: ElementPosition | undefined;
74
+ links: BannerSlideLink[];
75
+ linksPosition?: ElementPosition | undefined;
76
+ linksLayout?: string | undefined;
77
+ styling: string;
78
+ sortOrder: number;
79
+ }
80
+
81
+ export interface BannerSlideResponse_TitleEntry {
82
+ key: string;
83
+ value: string;
84
+ }
85
+
86
+ export interface BannerSlideResponse_SubtitleEntry {
87
+ key: string;
88
+ value: string;
89
+ }
90
+
91
+ export interface GetBannersRequest {
92
+ pagination: PaginationRequest | undefined;
93
+ placement?: BannerPlacement | undefined;
94
+ status?: boolean | undefined;
95
+ }
96
+
97
+ export interface GetBannersResponse {
98
+ items: BannerListItemResponse[];
99
+ meta: PaginationMeta | undefined;
100
+ }
101
+
102
+ export interface GetBannerRequest {
103
+ id: string;
104
+ slug?: string | undefined;
105
+ }
106
+
107
+ export interface CreateBannerRequest {
108
+ slug?: string | undefined;
109
+ name: { [key: string]: string };
110
+ placement: BannerPlacement;
111
+ status: boolean;
112
+ sortOrder: number;
113
+ categoryId?: string | undefined;
114
+ startDate?: string | undefined;
115
+ endDate?: string | undefined;
116
+ autoplay: boolean;
117
+ intervalMs: number;
118
+ createdById: string;
119
+ slides: CreateBannerSlidePayload[];
120
+ }
121
+
122
+ export interface CreateBannerRequest_NameEntry {
123
+ key: string;
124
+ value: string;
125
+ }
126
+
127
+ export interface UpdateBannerRequest {
128
+ id: string;
129
+ slug?: string | undefined;
130
+ name: { [key: string]: string };
131
+ placement?: BannerPlacement | undefined;
132
+ status?: boolean | undefined;
133
+ sortOrder?: number | undefined;
134
+ categoryId?: string | undefined;
135
+ startDate?: string | undefined;
136
+ endDate?: string | undefined;
137
+ autoplay?: boolean | undefined;
138
+ intervalMs?: number | undefined;
139
+ }
140
+
141
+ export interface UpdateBannerRequest_NameEntry {
142
+ key: string;
143
+ value: string;
144
+ }
145
+
146
+ export interface DeleteBannerRequest {
147
+ id: string;
148
+ }
149
+
150
+ export interface CreateBannerSlidePayload {
151
+ image: string;
152
+ imageId: string;
153
+ mobileImage?: string | undefined;
154
+ mobileImageId?: string | undefined;
155
+ title: { [key: string]: string };
156
+ subtitle: { [key: string]: string };
157
+ buttonText: { [key: string]: string };
158
+ buttonLink?: string | undefined;
159
+ styling: string;
160
+ sortOrder: number;
161
+ }
162
+
163
+ export interface CreateBannerSlidePayload_TitleEntry {
164
+ key: string;
165
+ value: string;
166
+ }
167
+
168
+ export interface CreateBannerSlidePayload_SubtitleEntry {
169
+ key: string;
170
+ value: string;
171
+ }
172
+
173
+ export interface CreateBannerSlidePayload_ButtonTextEntry {
174
+ key: string;
175
+ value: string;
176
+ }
177
+
178
+ export interface CreateBannerSlideRequest {
179
+ bannerId: string;
180
+ image: string;
181
+ imageId: string;
182
+ mobileImage?: string | undefined;
183
+ mobileImageId?: string | undefined;
184
+ title: { [key: string]: string };
185
+ subtitle: { [key: string]: string };
186
+ buttonText: { [key: string]: string };
187
+ buttonLink?: string | undefined;
188
+ styling: string;
189
+ sortOrder: number;
190
+ }
191
+
192
+ export interface CreateBannerSlideRequest_TitleEntry {
193
+ key: string;
194
+ value: string;
195
+ }
196
+
197
+ export interface CreateBannerSlideRequest_SubtitleEntry {
198
+ key: string;
199
+ value: string;
200
+ }
201
+
202
+ export interface CreateBannerSlideRequest_ButtonTextEntry {
203
+ key: string;
204
+ value: string;
205
+ }
206
+
207
+ export interface UpdateBannerSlideRequest {
208
+ id: string;
209
+ image?: string | undefined;
210
+ imageId?: string | undefined;
211
+ mobileImage?: string | undefined;
212
+ mobileImageId?: string | undefined;
213
+ title: { [key: string]: string };
214
+ subtitle: { [key: string]: string };
215
+ buttonText: { [key: string]: string };
216
+ buttonLink?: string | undefined;
217
+ styling?: string | undefined;
218
+ sortOrder?: number | undefined;
219
+ }
220
+
221
+ export interface UpdateBannerSlideRequest_TitleEntry {
222
+ key: string;
223
+ value: string;
224
+ }
225
+
226
+ export interface UpdateBannerSlideRequest_SubtitleEntry {
227
+ key: string;
228
+ value: string;
229
+ }
230
+
231
+ export interface UpdateBannerSlideRequest_ButtonTextEntry {
232
+ key: string;
233
+ value: string;
234
+ }
235
+
236
+ export interface DeleteBannerSlideRequest {
237
+ id: string;
238
+ }
239
+
240
+ export interface SlideOrderItem {
241
+ id: string;
242
+ sortOrder: number;
243
+ }
244
+
245
+ export interface UpdateSlideOrderRequest {
246
+ bannerId: string;
247
+ items: SlideOrderItem[];
248
+ }
249
+
250
+ export interface GetBannersByPlacementRequest {
251
+ placement: BannerPlacement;
252
+ categoryId?: string | undefined;
253
+ lang?: string | undefined;
254
+ }
255
+
256
+ export interface PublicBannerResponse {
257
+ id: string;
258
+ slides: PublicSlideResponse[];
259
+ autoplay: boolean;
260
+ intervalMs: number;
261
+ }
262
+
263
+ export interface PublicSlideResponse {
264
+ image: string;
265
+ mobileImage?: string | undefined;
266
+ title?: string | undefined;
267
+ subtitle?: string | undefined;
268
+ buttons: BannerSlideButton[];
269
+ buttonsPosition?: ElementPosition | undefined;
270
+ links: BannerSlideLink[];
271
+ linksPosition?: ElementPosition | undefined;
272
+ linksLayout?: string | undefined;
273
+ styling: string;
274
+ }
275
+
276
+ export interface GetBannersByPlacementResponse {
277
+ items: PublicBannerResponse[];
278
+ }
279
+
280
+ export interface ElementPosition {
281
+ vertical: string;
282
+ horizontal: string;
283
+ }
284
+
285
+ export interface BannerSlideButton {
286
+ text: { [key: string]: string };
287
+ href: string;
288
+ variant?: string | undefined;
289
+ }
290
+
291
+ export interface BannerSlideButton_TextEntry {
292
+ key: string;
293
+ value: string;
294
+ }
295
+
296
+ export interface BannerSlideLink {
297
+ text: { [key: string]: string };
298
+ href: string;
299
+ categoryId?: string | undefined;
300
+ }
301
+
302
+ export interface BannerSlideLink_TextEntry {
303
+ key: string;
304
+ value: string;
305
+ }
306
+
307
+ export const CONTENT_V1_PACKAGE_NAME = "content.v1";
308
+
309
+ export interface BannerServiceClient {
310
+ getBanners(request: GetBannersRequest): Observable<GetBannersResponse>;
311
+
312
+ getBanner(request: GetBannerRequest): Observable<BannerDetailResponse>;
313
+
314
+ createBanner(request: CreateBannerRequest): Observable<BannerDetailResponse>;
315
+
316
+ updateBanner(request: UpdateBannerRequest): Observable<BannerDetailResponse>;
317
+
318
+ deleteBanner(request: DeleteBannerRequest): Observable<DeleteResponse>;
319
+
320
+ createBannerSlide(request: CreateBannerSlideRequest): Observable<BannerSlideResponse>;
321
+
322
+ updateBannerSlide(request: UpdateBannerSlideRequest): Observable<BannerSlideResponse>;
323
+
324
+ deleteBannerSlide(request: DeleteBannerSlideRequest): Observable<DeleteResponse>;
325
+
326
+ updateSlideOrder(request: UpdateSlideOrderRequest): Observable<SuccessResponse>;
327
+
328
+ getBannersByPlacement(request: GetBannersByPlacementRequest): Observable<GetBannersByPlacementResponse>;
329
+ }
330
+
331
+ export interface BannerServiceController {
332
+ getBanners(
333
+ request: GetBannersRequest,
334
+ ): Promise<GetBannersResponse> | Observable<GetBannersResponse> | GetBannersResponse;
335
+
336
+ getBanner(
337
+ request: GetBannerRequest,
338
+ ): Promise<BannerDetailResponse> | Observable<BannerDetailResponse> | BannerDetailResponse;
339
+
340
+ createBanner(
341
+ request: CreateBannerRequest,
342
+ ): Promise<BannerDetailResponse> | Observable<BannerDetailResponse> | BannerDetailResponse;
343
+
344
+ updateBanner(
345
+ request: UpdateBannerRequest,
346
+ ): Promise<BannerDetailResponse> | Observable<BannerDetailResponse> | BannerDetailResponse;
347
+
348
+ deleteBanner(request: DeleteBannerRequest): Promise<DeleteResponse> | Observable<DeleteResponse> | DeleteResponse;
349
+
350
+ createBannerSlide(
351
+ request: CreateBannerSlideRequest,
352
+ ): Promise<BannerSlideResponse> | Observable<BannerSlideResponse> | BannerSlideResponse;
353
+
354
+ updateBannerSlide(
355
+ request: UpdateBannerSlideRequest,
356
+ ): Promise<BannerSlideResponse> | Observable<BannerSlideResponse> | BannerSlideResponse;
357
+
358
+ deleteBannerSlide(
359
+ request: DeleteBannerSlideRequest,
360
+ ): Promise<DeleteResponse> | Observable<DeleteResponse> | DeleteResponse;
361
+
362
+ updateSlideOrder(
363
+ request: UpdateSlideOrderRequest,
364
+ ): Promise<SuccessResponse> | Observable<SuccessResponse> | SuccessResponse;
365
+
366
+ getBannersByPlacement(
367
+ request: GetBannersByPlacementRequest,
368
+ ): Promise<GetBannersByPlacementResponse> | Observable<GetBannersByPlacementResponse> | GetBannersByPlacementResponse;
369
+ }
370
+
371
+ export function BannerServiceControllerMethods() {
372
+ return function (constructor: Function) {
373
+ const grpcMethods: string[] = [
374
+ "getBanners",
375
+ "getBanner",
376
+ "createBanner",
377
+ "updateBanner",
378
+ "deleteBanner",
379
+ "createBannerSlide",
380
+ "updateBannerSlide",
381
+ "deleteBannerSlide",
382
+ "updateSlideOrder",
383
+ "getBannersByPlacement",
384
+ ];
385
+ for (const method of grpcMethods) {
386
+ const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
387
+ GrpcMethod("BannerService", method)(constructor.prototype[method], method, descriptor);
388
+ }
389
+ const grpcStreamMethods: string[] = [];
390
+ for (const method of grpcStreamMethods) {
391
+ const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
392
+ GrpcStreamMethod("BannerService", method)(constructor.prototype[method], method, descriptor);
393
+ }
394
+ };
395
+ }
396
+
397
+ export const BANNER_SERVICE_NAME = "BannerService";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mamindom/contracts",
3
3
  "description": "proto",
4
- "version": "1.0.60",
4
+ "version": "1.0.62",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",
7
7
  "exports": {
@@ -0,0 +1,237 @@
1
+ syntax = "proto3";
2
+
3
+ package content.v1;
4
+
5
+ import "common_post.proto";
6
+
7
+ service BannerService {
8
+
9
+ rpc GetBanners (GetBannersRequest) returns (GetBannersResponse);
10
+ rpc GetBanner (GetBannerRequest) returns (BannerDetailResponse);
11
+ rpc CreateBanner (CreateBannerRequest) returns (BannerDetailResponse);
12
+ rpc UpdateBanner (UpdateBannerRequest) returns (BannerDetailResponse);
13
+ rpc DeleteBanner (DeleteBannerRequest) returns (DeleteResponse);
14
+
15
+
16
+ rpc CreateBannerSlide (CreateBannerSlideRequest) returns (BannerSlideResponse);
17
+ rpc UpdateBannerSlide (UpdateBannerSlideRequest) returns (BannerSlideResponse);
18
+ rpc DeleteBannerSlide (DeleteBannerSlideRequest) returns (DeleteResponse);
19
+ rpc UpdateSlideOrder (UpdateSlideOrderRequest) returns (SuccessResponse);
20
+
21
+
22
+ rpc GetBannersByPlacement (GetBannersByPlacementRequest) returns (GetBannersByPlacementResponse);
23
+ }
24
+
25
+ enum BannerPlacement {
26
+ BANNER_PLACEMENT_UNSPECIFIED = 0;
27
+ BANNER_PLACEMENT_HOME_HERO = 1;
28
+ BANNER_PLACEMENT_HOME_SECONDARY = 2;
29
+ BANNER_PLACEMENT_CATEGORY_TOP = 3;
30
+ BANNER_PLACEMENT_PROMO = 4;
31
+ BANNER_PLACEMENT_SIDEBAR = 5;
32
+ BANNER_PLACEMENT_CUSTOM = 6;
33
+ }
34
+
35
+
36
+ message BannerListItemResponse {
37
+ string id = 1;
38
+ string slug = 2;
39
+ map<string, string> name = 3;
40
+ BannerPlacement placement = 4;
41
+ bool status = 5;
42
+ int32 sort_order = 6;
43
+ optional string category_id = 7;
44
+ optional string start_date = 8;
45
+ optional string end_date = 9;
46
+ int32 slides_count = 10;
47
+ }
48
+
49
+ message BannerDetailResponse {
50
+ string id = 1;
51
+ string slug = 2;
52
+ map<string, string> name = 3;
53
+ BannerPlacement placement = 4;
54
+ bool status = 5;
55
+ int32 sort_order = 6;
56
+ optional string category_id = 7;
57
+ optional string start_date = 8;
58
+ optional string end_date = 9;
59
+ bool autoplay = 10;
60
+ int32 interval_ms = 11;
61
+ string created_by_id = 12;
62
+ repeated BannerSlideResponse slides = 13;
63
+ }
64
+
65
+ message BannerSlideResponse {
66
+ string id = 1;
67
+ string image = 2;
68
+ string image_id = 3;
69
+ optional string mobile_image = 4;
70
+ optional string mobile_image_id = 5;
71
+ map<string, string> title = 6;
72
+ map<string, string> subtitle = 7;
73
+
74
+ repeated BannerSlideButton buttons = 8;
75
+ optional ElementPosition buttons_position = 9;
76
+ repeated BannerSlideLink links = 10;
77
+ optional ElementPosition links_position = 11;
78
+ optional string links_layout = 12;
79
+
80
+ string styling = 13;
81
+ int32 sort_order = 14;
82
+ }
83
+
84
+
85
+ message GetBannersRequest {
86
+ PaginationRequest pagination = 1;
87
+ optional BannerPlacement placement = 2;
88
+ optional bool status = 3;
89
+ }
90
+
91
+ message GetBannersResponse {
92
+ repeated BannerListItemResponse items = 1;
93
+ PaginationMeta meta = 2;
94
+ }
95
+
96
+ message GetBannerRequest {
97
+ string id = 1;
98
+ optional string slug = 2;
99
+ }
100
+
101
+ message CreateBannerRequest {
102
+ optional string slug = 1;
103
+ map<string, string> name = 2;
104
+ BannerPlacement placement = 3;
105
+ bool status = 4;
106
+ int32 sort_order = 5;
107
+ optional string category_id = 6;
108
+ optional string start_date = 7;
109
+ optional string end_date = 8;
110
+ bool autoplay = 9;
111
+ int32 interval_ms = 10;
112
+ string created_by_id = 11;
113
+ repeated CreateBannerSlidePayload slides = 12;
114
+ }
115
+
116
+ message UpdateBannerRequest {
117
+ string id = 1;
118
+ optional string slug = 2;
119
+ map<string, string> name = 3;
120
+ optional BannerPlacement placement = 4;
121
+ optional bool status = 5;
122
+ optional int32 sort_order = 6;
123
+ optional string category_id = 7;
124
+ optional string start_date = 8;
125
+ optional string end_date = 9;
126
+ optional bool autoplay = 10;
127
+ optional int32 interval_ms = 11;
128
+ }
129
+
130
+ message DeleteBannerRequest {
131
+ string id = 1;
132
+ }
133
+
134
+ message CreateBannerSlidePayload {
135
+ string image = 1;
136
+ string image_id = 2;
137
+ optional string mobile_image = 3;
138
+ optional string mobile_image_id = 4;
139
+ map<string, string> title = 5;
140
+ map<string, string> subtitle = 6;
141
+ map<string, string> button_text = 7;
142
+ optional string button_link = 8;
143
+ string styling = 9;
144
+ int32 sort_order = 10;
145
+ }
146
+
147
+ message CreateBannerSlideRequest {
148
+ string banner_id = 1;
149
+ string image = 2;
150
+ string image_id = 3;
151
+ optional string mobile_image = 4;
152
+ optional string mobile_image_id = 5;
153
+ map<string, string> title = 6;
154
+ map<string, string> subtitle = 7;
155
+ map<string, string> button_text = 8;
156
+ optional string button_link = 9;
157
+ string styling = 10;
158
+ int32 sort_order = 11;
159
+ }
160
+
161
+ message UpdateBannerSlideRequest {
162
+ string id = 1;
163
+ optional string image = 2;
164
+ optional string image_id = 3;
165
+ optional string mobile_image = 4;
166
+ optional string mobile_image_id = 5;
167
+ map<string, string> title = 6;
168
+ map<string, string> subtitle = 7;
169
+ map<string, string> button_text = 8;
170
+ optional string button_link = 9;
171
+ optional string styling = 10;
172
+ optional int32 sort_order = 11;
173
+ }
174
+
175
+ message DeleteBannerSlideRequest {
176
+ string id = 1;
177
+ }
178
+
179
+ message SlideOrderItem {
180
+ string id = 1;
181
+ int32 sort_order = 2;
182
+ }
183
+
184
+ message UpdateSlideOrderRequest {
185
+ string banner_id = 1;
186
+ repeated SlideOrderItem items = 2;
187
+ }
188
+
189
+
190
+ message GetBannersByPlacementRequest {
191
+ BannerPlacement placement = 1;
192
+ optional string category_id = 2;
193
+ optional string lang = 3;
194
+ }
195
+
196
+ message PublicBannerResponse {
197
+ string id = 1;
198
+ repeated PublicSlideResponse slides = 2;
199
+ bool autoplay = 3;
200
+ int32 interval_ms = 4;
201
+ }
202
+
203
+ message PublicSlideResponse {
204
+ string image = 1;
205
+ optional string mobile_image = 2;
206
+ optional string title = 3;
207
+ optional string subtitle = 4;
208
+
209
+ repeated BannerSlideButton buttons = 5;
210
+ optional ElementPosition buttons_position = 6;
211
+ repeated BannerSlideLink links = 7;
212
+ optional ElementPosition links_position = 8;
213
+ optional string links_layout = 9;
214
+
215
+ string styling = 10;
216
+ }
217
+
218
+ message GetBannersByPlacementResponse {
219
+ repeated PublicBannerResponse items = 1;
220
+ }
221
+
222
+ message ElementPosition {
223
+ string vertical = 1;
224
+ string horizontal = 2;
225
+ }
226
+
227
+ message BannerSlideButton {
228
+ map<string, string> text = 1;
229
+ string href = 2;
230
+ optional string variant = 3;
231
+ }
232
+
233
+ message BannerSlideLink {
234
+ map<string, string> text = 1;
235
+ string href = 2;
236
+ optional string category_id = 3;
237
+ }