@djaouad10/shared-types 1.0.0 → 1.0.3

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 (88) hide show
  1. package/dist/api/root.d.ts +2442 -0
  2. package/dist/api/routers/admin/handler-input-schema.d.ts +6 -0
  3. package/dist/api/routers/admin/index.d.ts +56 -0
  4. package/dist/api/routers/cart/handler-input-schema.d.ts +17 -0
  5. package/dist/api/routers/cart/index.d.ts +93 -0
  6. package/dist/api/routers/category/handler-input-schema.d.ts +12 -0
  7. package/dist/api/routers/category/index.d.ts +73 -0
  8. package/dist/api/routers/client/handler-input-schema.d.ts +30 -0
  9. package/dist/api/routers/client/index.d.ts +102 -0
  10. package/dist/api/routers/file/handler-input-schema.d.ts +77 -0
  11. package/dist/api/routers/file/index.d.ts +85 -0
  12. package/dist/api/routers/order/handler-input-schema.d.ts +96 -0
  13. package/dist/api/routers/order/index.d.ts +187 -0
  14. package/dist/api/routers/product/handler-input-schema.d.ts +65 -0
  15. package/dist/api/routers/product/index.d.ts +228 -0
  16. package/dist/api/routers/product/variation/handler-input-schema.d.ts +56 -0
  17. package/dist/api/routers/product/variation/index.d.ts +90 -0
  18. package/dist/api/routers/rating/handler-input-schema.d.ts +41 -0
  19. package/dist/api/routers/rating/index.d.ts +128 -0
  20. package/dist/api/routers/shipping/address/handler-input-schema.d.ts +5 -0
  21. package/dist/api/routers/shipping/address/index.d.ts +66 -0
  22. package/dist/api/routers/shipping/handler-input-schema.d.ts +2 -0
  23. package/dist/api/routers/shipping/index.d.ts +182 -0
  24. package/dist/api/routers/shipping/shipments/handler-input-schema.d.ts +8 -0
  25. package/dist/api/routers/shipping/shipments/index.d.ts +72 -0
  26. package/dist/api/routers/statistics/handler-input-schema.d.ts +2 -0
  27. package/dist/api/routers/statistics/index.d.ts +51 -0
  28. package/dist/api/trpc.d.ts +329 -0
  29. package/dist/data-access-layer/admin.dal.d.ts +12 -0
  30. package/dist/data-access-layer/cart.dal.d.ts +29 -0
  31. package/dist/data-access-layer/category.dal.d.ts +11 -0
  32. package/dist/data-access-layer/client.dal.d.ts +30 -0
  33. package/dist/data-access-layer/file.dal.d.ts +42 -0
  34. package/dist/data-access-layer/order.dal.d.ts +133 -0
  35. package/dist/data-access-layer/product.dal.d.ts +69 -0
  36. package/dist/data-access-layer/rating.dal.d.ts +40 -0
  37. package/dist/data-access-layer/shipping/world-express.dal.d.ts +205 -0
  38. package/dist/data-access-layer/statistic.dal.d.ts +6 -0
  39. package/dist/data-transfer-objects/cart.dto.d.ts +17 -0
  40. package/dist/data-transfer-objects/category.dto.d.ts +5 -0
  41. package/dist/data-transfer-objects/client.dto.d.ts +9 -0
  42. package/dist/data-transfer-objects/file.dto.d.ts +13 -0
  43. package/dist/data-transfer-objects/order.dto.d.ts +52 -0
  44. package/dist/data-transfer-objects/product.dto.d.ts +33 -0
  45. package/dist/data-transfer-objects/rating.dto.d.ts +9 -0
  46. package/dist/errors/index.d.ts +32 -0
  47. package/dist/index.d.ts +2 -0
  48. package/dist/lib/auth.d.ts +1051 -0
  49. package/dist/lib/core.d.ts +15 -0
  50. package/dist/lib/db.d.ts +5 -0
  51. package/dist/lib/env.d.ts +15 -0
  52. package/dist/lib/static.d.ts +8 -0
  53. package/dist/lib/validation/shared-schemas.d.ts +173 -0
  54. package/dist/services/admin.service.d.ts +12 -0
  55. package/dist/services/cart.service.d.ts +24 -0
  56. package/dist/services/category.service.d.ts +12 -0
  57. package/dist/services/client.service.d.ts +25 -0
  58. package/dist/services/email.service.d.ts +11 -0
  59. package/dist/services/file.service.d.ts +37 -0
  60. package/dist/services/index.d.ts +23 -0
  61. package/dist/services/order.service.d.ts +90 -0
  62. package/dist/services/product.service.d.ts +47 -0
  63. package/dist/services/rating.service.d.ts +31 -0
  64. package/dist/services/shipping/service-definitons.d.ts +122 -0
  65. package/dist/services/shipping/world-epress.service.d.ts +86 -0
  66. package/dist/services/statistic.service.d.ts +8 -0
  67. package/dist/shared-types/admin.shared-types.d.ts +6 -0
  68. package/dist/shared-types/cart.shared-types.d.ts +19 -0
  69. package/dist/shared-types/client.shared-types.d.ts +29 -0
  70. package/dist/shared-types/file.shared-types.d.ts +11 -0
  71. package/dist/shared-types/order.shared-types.d.ts +30 -0
  72. package/dist/shared-types/product.shared-types.d.ts +52 -0
  73. package/dist/shared-types/rating.shared-types.d.ts +40 -0
  74. package/dist/test/factories/cart-item.factory.d.ts +2 -0
  75. package/dist/test/factories/category.factory.d.ts +9 -0
  76. package/dist/test/factories/file.factory.d.ts +21 -0
  77. package/dist/test/factories/index.d.ts +11 -0
  78. package/dist/test/factories/order.factory.d.ts +2 -0
  79. package/dist/test/factories/product.factory.d.ts +48 -0
  80. package/dist/test/factories/rating.factory.d.ts +2 -0
  81. package/dist/test/factories/shipping-details.factory.d.ts +2 -0
  82. package/dist/test/factories/types.d.ts +27 -0
  83. package/dist/test/factories/user.factory.d.ts +13 -0
  84. package/dist/test/factories/variation.factory.d.ts +2 -0
  85. package/dist/test/setup.d.ts +2 -0
  86. package/dist/test/verify-test-env.d.ts +2 -0
  87. package/package.json +18 -68
  88. package/README.md +0 -0
@@ -0,0 +1,15 @@
1
+ export declare const ourFileRouter: {
2
+ courseImage: import("node_modules/uploadthing/dist/types-Bs3w2d_3.js").FileRoute<{
3
+ input: undefined;
4
+ output: {
5
+ uploadedBy: string;
6
+ publicUrl: string;
7
+ name: string;
8
+ key: string;
9
+ type: string;
10
+ };
11
+ errorShape: import("@uploadthing/shared").Json;
12
+ }>;
13
+ };
14
+ export type OurFileRouter = typeof ourFileRouter;
15
+ //# sourceMappingURL=core.d.ts.map
@@ -0,0 +1,5 @@
1
+ import { PrismaClient } from "@prisma/client";
2
+ export declare const db: PrismaClient<{
3
+ log: ("error" | "query" | "warn")[];
4
+ }, never, import("@prisma/client/runtime/library").DefaultArgs>;
5
+ //# sourceMappingURL=db.d.ts.map
@@ -0,0 +1,15 @@
1
+ export declare const env: Readonly<{
2
+ DATABASE_URL: string;
3
+ BETTER_AUTH_SECRET: string;
4
+ BETTER_AUTH_URL: string;
5
+ UPLOADTHING_TOKEN: string;
6
+ FROM_EMAIL_ADDRESS: string;
7
+ BREVO_API_KEY: string;
8
+ ECOTRACK_API_URL: string;
9
+ ECOTRACK_API_KEY: string;
10
+ NODE_ENV: "development" | "test" | "production";
11
+ PORT: string;
12
+ FRONTEND_URL: string;
13
+ DEBUG_PRISMA: boolean;
14
+ }>;
15
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1,8 @@
1
+ import { OrderStatus } from "@prisma/client";
2
+ type OrderStateMachine = {
3
+ [S in OrderStatus]: readonly OrderStatus[];
4
+ };
5
+ export declare const orderStateMachine: OrderStateMachine;
6
+ export declare const brandName = "OsaKaa";
7
+ export {};
8
+ //# sourceMappingURL=static.d.ts.map
@@ -0,0 +1,173 @@
1
+ import z from "zod";
2
+ export declare const categoryNameSchema: z.ZodString;
3
+ export declare const requiredUUIDSchema: z.ZodUUID;
4
+ export declare const optionalUUIDSchema: z.ZodOptional<z.ZodUUID>;
5
+ export declare const requiredPasswordSchema: z.ZodString;
6
+ export declare const optionalPasswordSchema: z.ZodOptional<z.ZodString>;
7
+ export declare const requiredStrictlyPositiveProductsQtySchema: z.ZodInt32;
8
+ export declare const optionalStrictlyPositiveProductsQtySchema: z.ZodOptional<z.ZodInt32>;
9
+ export declare const requiredPositiveProductsQtySchema: z.ZodInt32;
10
+ export declare const optionalPositiveProductsQtySchema: z.ZodOptional<z.ZodInt32>;
11
+ export declare const requiredUserIdSchema: z.ZodString;
12
+ export declare const optionalUserIdSchema: z.ZodOptional<z.ZodString>;
13
+ export declare const clientsListCursorSchema: z.ZodOptional<z.ZodString>;
14
+ export declare const requiredNameSchema: z.ZodString;
15
+ export declare const optionalNameSchema: z.ZodOptional<z.ZodString>;
16
+ export declare const ordersListCursorSchema: z.ZodOptional<z.ZodUUID>;
17
+ export declare const requiredOrderStatusSchema: z.ZodEnum<{
18
+ PENDING: "PENDING";
19
+ CONFIRMED: "CONFIRMED";
20
+ PRE_TRANSIT: "PRE_TRANSIT";
21
+ SHIPPING: "SHIPPING";
22
+ DELIVERED: "DELIVERED";
23
+ RETURNED: "RETURNED";
24
+ CANCELLED: "CANCELLED";
25
+ SUSPENDED: "SUSPENDED";
26
+ }>;
27
+ export declare const optionalOrderStatusSchema: z.ZodOptional<z.ZodEnum<{
28
+ PENDING: "PENDING";
29
+ CONFIRMED: "CONFIRMED";
30
+ PRE_TRANSIT: "PRE_TRANSIT";
31
+ SHIPPING: "SHIPPING";
32
+ DELIVERED: "DELIVERED";
33
+ RETURNED: "RETURNED";
34
+ CANCELLED: "CANCELLED";
35
+ SUSPENDED: "SUSPENDED";
36
+ }>>;
37
+ export declare const productsListCursorSchema: z.ZodOptional<z.ZodUUID>;
38
+ export declare const requiredStrictlyPositivePriceSchema: z.ZodFloat32;
39
+ export declare const requiredPositivePriceSchema: z.ZodFloat32;
40
+ export declare const optionalStrictlyPositivePriceSchema: z.ZodOptional<z.ZodFloat32>;
41
+ export declare const optionalPositivePriceSchema: z.ZodOptional<z.ZodFloat32>;
42
+ export declare const nullablePositivePriceSchema: z.ZodNullable<z.ZodFloat32>;
43
+ export declare const optionalNullablePositivePriceSchema: z.ZodNullable<z.ZodOptional<z.ZodFloat32>>;
44
+ export declare const requiredProductDescriptionSchema: z.ZodString;
45
+ export declare const optionalProductDescriptionSchema: z.ZodOptional<z.ZodString>;
46
+ export declare const nullableProductDescriptionSchema: z.ZodNullable<z.ZodString>;
47
+ export declare const optionalNullableProductDescriptionSchema: z.ZodNullable<z.ZodOptional<z.ZodString>>;
48
+ export declare const requiredUrlSchema: z.ZodURL;
49
+ export declare const optionalUrlSchema: z.ZodOptional<z.ZodURL>;
50
+ export declare const requiredProductColorSchema: z.ZodEnum<{
51
+ BLACK: "BLACK";
52
+ WHITE: "WHITE";
53
+ GRAY: "GRAY";
54
+ RED: "RED";
55
+ BLUE: "BLUE";
56
+ GREEN: "GREEN";
57
+ YELLOW: "YELLOW";
58
+ ORANGE: "ORANGE";
59
+ PURPLE: "PURPLE";
60
+ PINK: "PINK";
61
+ BROWN: "BROWN";
62
+ BEIGE: "BEIGE";
63
+ NAVY: "NAVY";
64
+ MAROON: "MAROON";
65
+ TEAL: "TEAL";
66
+ }>;
67
+ export declare const optionalProductColorSchema: z.ZodOptional<z.ZodEnum<{
68
+ BLACK: "BLACK";
69
+ WHITE: "WHITE";
70
+ GRAY: "GRAY";
71
+ RED: "RED";
72
+ BLUE: "BLUE";
73
+ GREEN: "GREEN";
74
+ YELLOW: "YELLOW";
75
+ ORANGE: "ORANGE";
76
+ PURPLE: "PURPLE";
77
+ PINK: "PINK";
78
+ BROWN: "BROWN";
79
+ BEIGE: "BEIGE";
80
+ NAVY: "NAVY";
81
+ MAROON: "MAROON";
82
+ TEAL: "TEAL";
83
+ }>>;
84
+ export declare const nullableProductColorSchema: z.ZodNullable<z.ZodEnum<{
85
+ BLACK: "BLACK";
86
+ WHITE: "WHITE";
87
+ GRAY: "GRAY";
88
+ RED: "RED";
89
+ BLUE: "BLUE";
90
+ GREEN: "GREEN";
91
+ YELLOW: "YELLOW";
92
+ ORANGE: "ORANGE";
93
+ PURPLE: "PURPLE";
94
+ PINK: "PINK";
95
+ BROWN: "BROWN";
96
+ BEIGE: "BEIGE";
97
+ NAVY: "NAVY";
98
+ MAROON: "MAROON";
99
+ TEAL: "TEAL";
100
+ }>>;
101
+ export declare const requiredProductSizeSchema: z.ZodEnum<{
102
+ XS: "XS";
103
+ S: "S";
104
+ M: "M";
105
+ L: "L";
106
+ XL: "XL";
107
+ XXL: "XXL";
108
+ XXXL: "XXXL";
109
+ EU_36: "EU_36";
110
+ EU_37: "EU_37";
111
+ EU_38: "EU_38";
112
+ EU_39: "EU_39";
113
+ EU_40: "EU_40";
114
+ EU_41: "EU_41";
115
+ EU_42: "EU_42";
116
+ EU_43: "EU_43";
117
+ }>;
118
+ export declare const optionalProductSizeSchema: z.ZodOptional<z.ZodEnum<{
119
+ BLACK: "BLACK";
120
+ WHITE: "WHITE";
121
+ GRAY: "GRAY";
122
+ RED: "RED";
123
+ BLUE: "BLUE";
124
+ GREEN: "GREEN";
125
+ YELLOW: "YELLOW";
126
+ ORANGE: "ORANGE";
127
+ PURPLE: "PURPLE";
128
+ PINK: "PINK";
129
+ BROWN: "BROWN";
130
+ BEIGE: "BEIGE";
131
+ NAVY: "NAVY";
132
+ MAROON: "MAROON";
133
+ TEAL: "TEAL";
134
+ }>>;
135
+ export declare const requiredProductWeightInGramsSchema: z.ZodInt32;
136
+ export declare const optionalProductWeightInGramsSchema: z.ZodOptional<z.ZodInt32>;
137
+ export declare const ratingsListCursorSchema: z.ZodOptional<z.ZodObject<{
138
+ userId: z.ZodString;
139
+ productId: z.ZodUUID;
140
+ }, z.z.core.$strip>>;
141
+ export declare const requiredRatingNumberSchema: z.ZodInt;
142
+ export declare const requiredRatingCommentSchema: z.ZodString;
143
+ export declare const optionalRatingCommentSchema: z.ZodOptional<z.ZodString>;
144
+ export declare const nullableRatingCommentSchema: z.ZodNullable<z.ZodString>;
145
+ export declare const requiredLimitSchema: z.ZodInt32;
146
+ export declare const optionalLimitSchema: z.ZodOptional<z.ZodDefault<z.ZodInt32>>;
147
+ export declare const clientsListCriteriaSchema: z.ZodOptional<z.ZodEnum<{
148
+ banned: "banned";
149
+ "most-orders": "most-orders";
150
+ }>>;
151
+ export declare const requiredBooleanSchema: z.ZodBoolean;
152
+ export declare const optionalBooleanSchema: z.ZodOptional<z.ZodBoolean>;
153
+ export declare const requiredBanExpiryInSecondsSchema: z.ZodInt32;
154
+ export declare const nullableBanExpiryInSecondsSchema: z.ZodNullable<z.ZodInt32>;
155
+ export declare const nullableBanReasonSchema: z.ZodNullable<z.ZodString>;
156
+ export declare const requiredImageKeySchema: z.ZodString;
157
+ export declare const optionalImageKeySchema: z.ZodOptional<z.ZodString>;
158
+ export declare const requiredTrackingNumberSchema: z.ZodString;
159
+ export declare const requiredShippingProviderSchema: z.ZodEnum<{
160
+ WORLD_EXPRESS: "WORLD_EXPRESS";
161
+ }>;
162
+ export declare const requiredPhoneNumberSchema: z.ZodString;
163
+ export declare const optionalPhoneNumberSchema: z.ZodOptional<z.ZodString>;
164
+ export declare const requiredWilayaCodeSchema: z.ZodInt32;
165
+ export declare const requiredCommuneNameSchema: z.ZodString;
166
+ export declare const requiredAlgerianPostalCodeSchema: z.ZodString;
167
+ export declare const requiredShippingAddressSchema: z.ZodString;
168
+ export declare const optionalClientShippingNoteSchema: z.ZodOptional<z.ZodString>;
169
+ export declare const requiredDeliveryTypeSchema: z.ZodEnum<{
170
+ TO_DESK: "TO_DESK";
171
+ TO_HOME: "TO_HOME";
172
+ }>;
173
+ //# sourceMappingURL=shared-schemas.d.ts.map
@@ -0,0 +1,12 @@
1
+ import { PrismaClient } from "@prisma/client";
2
+ import { AdminDAL } from "../data-access-layer/admin.dal.js";
3
+ import type { UpdatePasswordParams } from "../shared-types/admin.shared-types.js";
4
+ export declare class AdminService {
5
+ private db;
6
+ private adminDAL;
7
+ constructor(db: PrismaClient, adminDAL: AdminDAL);
8
+ updatePassword(params: UpdatePasswordParams): Promise<{
9
+ success: boolean;
10
+ }>;
11
+ }
12
+ //# sourceMappingURL=admin.service.d.ts.map
@@ -0,0 +1,24 @@
1
+ import { PrismaClient } from "@prisma/client";
2
+ import { CartDAL } from "../data-access-layer/cart.dal.js";
3
+ import type { AddItemToCartParams, RemoveItemFromCartParams, UpdateCartItemParams } from "../shared-types/cart.shared-types.js";
4
+ export declare class CartService {
5
+ private cartDAL;
6
+ private db;
7
+ constructor(cartDAL: CartDAL, db: PrismaClient);
8
+ getItemsOfClient(clientId: string): Promise<{
9
+ items: import("../data-transfer-objects/cart.dto.js").CartItemWithItsVariation[];
10
+ }>;
11
+ updateItemQty(params: UpdateCartItemParams): Promise<{
12
+ cartItem: import("../data-transfer-objects/cart.dto.js").PublicCartItemDTO;
13
+ }>;
14
+ removeItem(params: RemoveItemFromCartParams): Promise<{
15
+ cartItem: import("../data-transfer-objects/cart.dto.js").PublicCartItemDTO;
16
+ }>;
17
+ clearCart(clientId: string): Promise<{
18
+ count: number;
19
+ }>;
20
+ addItem(params: AddItemToCartParams): Promise<{
21
+ cartItem: import("../data-transfer-objects/cart.dto.js").PublicCartItemDTO;
22
+ }>;
23
+ }
24
+ //# sourceMappingURL=cart.service.d.ts.map
@@ -0,0 +1,12 @@
1
+ import { CategoryDAL } from "../data-access-layer/category.dal.js";
2
+ import { PrismaClient } from "@prisma/client";
3
+ export declare class CategoryService {
4
+ private categoryDAL;
5
+ private db;
6
+ constructor(categoryDAL: CategoryDAL, db: PrismaClient);
7
+ getAll(): Promise<import("../data-transfer-objects/category.dto.js").PublicCategoryDTO[]>;
8
+ create(name: string): Promise<import("../data-transfer-objects/category.dto.js").PublicCategoryDTO>;
9
+ update(categoryId: string, newName: string): Promise<import("../data-transfer-objects/category.dto.js").PublicCategoryDTO>;
10
+ delete(categoryId: string): Promise<import("../data-transfer-objects/category.dto.js").PublicCategoryDTO>;
11
+ }
12
+ //# sourceMappingURL=category.service.d.ts.map
@@ -0,0 +1,25 @@
1
+ import { PrismaClient } from "@prisma/client";
2
+ import { ClientDAL } from "../data-access-layer/client.dal.js";
3
+ import type { GetInfiniteClientsFilters, UpdateBanStatusParams, UpdateClientProfileParams } from "../shared-types/client.shared-types.js";
4
+ export declare class ClientService {
5
+ private db;
6
+ private clientDAL;
7
+ constructor(db: PrismaClient, clientDAL: ClientDAL);
8
+ getProfileDetails(clientId: string): Promise<{
9
+ client: import("../data-transfer-objects/client.dto.js").PublicClientDTO;
10
+ }>;
11
+ getInfiniteList(filters: GetInfiniteClientsFilters): Promise<{
12
+ clients: import("../data-transfer-objects/client.dto.js").PublicClientDTO[];
13
+ nextCursor: string | undefined;
14
+ }>;
15
+ isBanned(clientId: string): Promise<{
16
+ banned: boolean;
17
+ }>;
18
+ updateProfile(params: UpdateClientProfileParams): Promise<{
19
+ success: boolean;
20
+ }>;
21
+ updateBanStatus(params: UpdateBanStatusParams): Promise<{
22
+ success: boolean;
23
+ }>;
24
+ }
25
+ //# sourceMappingURL=client.service.d.ts.map
@@ -0,0 +1,11 @@
1
+ interface SendEmailProps {
2
+ to: string;
3
+ subject: string;
4
+ text: string;
5
+ html?: string;
6
+ }
7
+ export declare class EmailService {
8
+ sendEmail({ to, subject, text, html }: SendEmailProps): Promise<any>;
9
+ }
10
+ export {};
11
+ //# sourceMappingURL=email.service.d.ts.map
@@ -0,0 +1,37 @@
1
+ import { PrismaClient } from "@prisma/client";
2
+ import { FileDAL } from "../data-access-layer/file.dal.js";
3
+ import type { ExtendedImageDTO } from "../data-transfer-objects/file.dto.js";
4
+ import type { AddSingleImageOfProductParams } from "../shared-types/file.shared-types.js";
5
+ export declare class FileService {
6
+ private fileDAL;
7
+ private db;
8
+ constructor(fileDAL: FileDAL, db: PrismaClient);
9
+ getImageKeysOfProduct(productId: string): Promise<{
10
+ keys: string[];
11
+ }>;
12
+ deleteManyImagesFromStore(keys: string[]): Promise<{
13
+ success: boolean;
14
+ }>;
15
+ deleteImageFromStore(key: string): Promise<{
16
+ success: boolean;
17
+ }>;
18
+ deleteImageFromDB(key: string): Promise<{
19
+ image: ExtendedImageDTO;
20
+ }>;
21
+ deleteManyImagesFromDB(keys: string[]): Promise<{
22
+ success: boolean;
23
+ }>;
24
+ updateMainImageOfProduct(productId: string, newImage: ExtendedImageDTO): Promise<{
25
+ success: boolean;
26
+ }>;
27
+ deleteSingleImageOfProduct(key: string): Promise<{
28
+ success: boolean;
29
+ }>;
30
+ addSingleImageOfProduct(params: AddSingleImageOfProductParams): Promise<{
31
+ image: ExtendedImageDTO;
32
+ }>;
33
+ getAllImagesOfPorduct(prodcutId: string): Promise<{
34
+ images: ExtendedImageDTO[];
35
+ }>;
36
+ }
37
+ //# sourceMappingURL=file.service.d.ts.map
@@ -0,0 +1,23 @@
1
+ import { CategoryService } from "../services/category.service.js";
2
+ import { FileService } from "../services/file.service.js";
3
+ import { OrderService } from "../services/order.service.js";
4
+ import { ProductService } from "../services/product.service.js";
5
+ import { CartService } from "../services/cart.service.js";
6
+ import { WorldExpressShippingService } from "../services/shipping/world-epress.service.js";
7
+ import { AdminService } from "../services/admin.service.js";
8
+ import { ClientService } from "../services/client.service.js";
9
+ import { EmailService } from "../services/email.service.js";
10
+ import { RatingService } from "../services/rating.service.js";
11
+ import { StatisticService } from "../services/statistic.service.js";
12
+ export declare const categoryService: CategoryService;
13
+ export declare const orderService: OrderService;
14
+ export declare const fileService: FileService;
15
+ export declare const productService: ProductService;
16
+ export declare const cartService: CartService;
17
+ export declare const worldExpressShippingService: WorldExpressShippingService;
18
+ export declare const adminService: AdminService;
19
+ export declare const clientService: ClientService;
20
+ export declare const emailService: EmailService;
21
+ export declare const ratingService: RatingService;
22
+ export declare const statisticService: StatisticService;
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,90 @@
1
+ import { OrderDAL } from "../data-access-layer/order.dal.js";
2
+ import type { GetOrdersFilters, GetOrdersOfClientFilters, UpdateOrderDetailsParams } from "../shared-types/order.shared-types.js";
3
+ import { OrderStatus, PrismaClient } from "@prisma/client";
4
+ import { DeliveryType, ShippingProvider } from "@prisma/client";
5
+ interface CreateOrderServiceParams {
6
+ clientId: string;
7
+ providedShippingPrice: number;
8
+ selectedShippingProvider: ShippingProvider;
9
+ shippingDetails: {
10
+ full_name: string;
11
+ first_phone: string;
12
+ second_phone?: string | undefined;
13
+ code_wilaya: number;
14
+ commune: string;
15
+ code_postal: string;
16
+ address: string;
17
+ gps_link?: string | undefined;
18
+ client_note?: string | undefined;
19
+ delivery_type: DeliveryType;
20
+ fragile: boolean;
21
+ };
22
+ }
23
+ export declare class OrderService {
24
+ private orderDAL;
25
+ private db;
26
+ constructor(orderDAL: OrderDAL, db: PrismaClient);
27
+ getInfiniteListOfClient(filters: GetOrdersOfClientFilters): Promise<{
28
+ orders: {
29
+ id: string;
30
+ createdAt: Date;
31
+ userId: string;
32
+ tracking_number: string | null;
33
+ status: import("@prisma/client").$Enums.OrderStatus;
34
+ shipping_status: string | null;
35
+ total_order_price: number;
36
+ shipping_price_at_order_time: number;
37
+ selected_shipping_provider: "WORLD_EXPRESS";
38
+ total_weight: number;
39
+ shipping_details_id: string;
40
+ total_product_price: never;
41
+ delivery_type: never;
42
+ fragile: never;
43
+ }[];
44
+ nextCursor: string | undefined;
45
+ }>;
46
+ getFullDetails(orderId: string, clientId: string | undefined): Promise<{
47
+ order: import("../data-transfer-objects/order.dto.js").ExtendedOrderDTO & {
48
+ user: {
49
+ role: import("@prisma/client").Role;
50
+ };
51
+ };
52
+ }>;
53
+ getInfiniteList(filters: GetOrdersFilters): Promise<{
54
+ orders: (import("../data-transfer-objects/order.dto.js").PublicOrderDTO & {
55
+ user: {
56
+ role: import("@prisma/client").Role;
57
+ };
58
+ })[];
59
+ nextCursor: string | undefined;
60
+ }>;
61
+ findWithTrackingNumber(trackingNumber: string): Promise<{
62
+ order: import("../data-transfer-objects/order.dto.js").PublicOrderDTO;
63
+ }>;
64
+ getFirstOrderItemOfProduct(productId: string): Promise<{
65
+ orderItem: import("../data-transfer-objects/order.dto.js").PublicOrderItemDTO | null;
66
+ }>;
67
+ getFirstOrderItemOfVariation(variationId: string): Promise<{
68
+ orderItem: import("../data-transfer-objects/order.dto.js").PublicOrderItemDTO | null;
69
+ }>;
70
+ create(params: CreateOrderServiceParams): Promise<{
71
+ order: import("../data-transfer-objects/order.dto.js").PublicOrderDTO;
72
+ }>;
73
+ updateStatus(orderId: string, newStatus: OrderStatus, clientId?: string | undefined): Promise<{
74
+ order: import("../data-transfer-objects/order.dto.js").PublicOrderDTO;
75
+ }>;
76
+ updateDetails(params: UpdateOrderDetailsParams): Promise<{
77
+ success: boolean;
78
+ }>;
79
+ confirmMany(orderIds: string[]): Promise<{
80
+ success: boolean;
81
+ }>;
82
+ private calculateProductsPrice;
83
+ private formatOrderItems;
84
+ private calculateOrderWeight;
85
+ private reconcileInventoryAfterCreate;
86
+ private reconcileInventoryAfterCancel;
87
+ private reconcileInventoryAfterPreTransit;
88
+ }
89
+ export {};
90
+ //# sourceMappingURL=order.service.d.ts.map
@@ -0,0 +1,47 @@
1
+ import { ProductDAL } from "../data-access-layer/product.dal.js";
2
+ import type { CreateProductParams, CreateVariationParams, GetLowStockProductsFilters, GetProductsFilters, UpdateProductParams, UpdateVariationParams } from "../shared-types/product.shared-types.js";
3
+ import { PrismaClient } from "@prisma/client";
4
+ export declare class ProductService {
5
+ private productDAL;
6
+ private db;
7
+ constructor(productDAL: ProductDAL, db: PrismaClient);
8
+ getInfiniteList(filters: GetProductsFilters): Promise<{
9
+ products: import("../data-transfer-objects/product.dto.js").PublicProductDTO[];
10
+ nextCursor: string | undefined;
11
+ }>;
12
+ getStaticData(productId: string): Promise<{
13
+ product: import("../data-transfer-objects/product.dto.js").PublicProductDTO;
14
+ }>;
15
+ getInfiniteLowStock(filters: GetLowStockProductsFilters): Promise<{
16
+ products: import("../data-transfer-objects/product.dto.js").PublicProductDTO[];
17
+ nextCursor: string | undefined;
18
+ }>;
19
+ getAllVariationsOfProduct(productId: string): Promise<{
20
+ variations: import("../data-transfer-objects/product.dto.js").PublicVariationDTO[];
21
+ }>;
22
+ getUpdateData(productId: string): Promise<{
23
+ product: import("../data-transfer-objects/product.dto.js").PublicProductDTO;
24
+ variations: import("../data-transfer-objects/product.dto.js").ExtendedVariationDTO[];
25
+ images: import("../data-transfer-objects/file.dto.js").ExtendedImageDTO[];
26
+ }>;
27
+ create(params: CreateProductParams): Promise<{
28
+ product: import("../data-transfer-objects/product.dto.js").PublicProductDTO;
29
+ }>;
30
+ delete(productId: string): Promise<{
31
+ product: import("../data-transfer-objects/product.dto.js").PublicProductDTO;
32
+ }>;
33
+ updateStaticDetails(productId: string, params: UpdateProductParams): Promise<{
34
+ product: import("../data-transfer-objects/product.dto.js").PublicProductDTO;
35
+ }>;
36
+ createVariation(productId: string, params: CreateVariationParams): Promise<{
37
+ variation: import("../data-transfer-objects/product.dto.js").PublicVariationDTO;
38
+ }>;
39
+ updateVariation(variationId: string, params: UpdateVariationParams): Promise<import("../data-transfer-objects/product.dto.js").ExtendedVariationDTO>;
40
+ deleteVariation(variationId: string): Promise<{
41
+ variation: import("../data-transfer-objects/product.dto.js").PublicVariationDTO;
42
+ }>;
43
+ getExtendedVariationById(variationId: string): Promise<{
44
+ variation: import("../data-transfer-objects/product.dto.js").ExtendedVariationDTO;
45
+ }>;
46
+ }
47
+ //# sourceMappingURL=product.service.d.ts.map
@@ -0,0 +1,31 @@
1
+ import { PrismaClient } from "@prisma/client";
2
+ import { RatingDAL } from "../data-access-layer/rating.dal.js";
3
+ import type { GetManyApprovedRatingsOfProductFilters, GetManyOfClientFilters, FindSingleRatingFilters, GetManyPendingFilters, CreateRatingParams, DeleteRatingParams, UpdateRatingParams } from "../shared-types/rating.shared-types.js";
4
+ export declare class RatingService {
5
+ private ratingDAL;
6
+ private db;
7
+ constructor(ratingDAL: RatingDAL, db: PrismaClient);
8
+ getInfiniteApprovedListOfProduct(filters: GetManyApprovedRatingsOfProductFilters): Promise<{
9
+ ratings: import("../data-transfer-objects/rating.dto.js").PublicRatingDTO[];
10
+ nextCursor: import("../shared-types/rating.shared-types.js").RatingCursor | undefined;
11
+ }>;
12
+ getInfiniteListOfClient(filters: GetManyOfClientFilters): Promise<{
13
+ ratings: import("../data-transfer-objects/rating.dto.js").PublicRatingDTO[];
14
+ nextCursor: import("../shared-types/rating.shared-types.js").RatingCursor | undefined;
15
+ }>;
16
+ didUserRateProduct(filters: FindSingleRatingFilters): Promise<boolean>;
17
+ getInfinitePendingRatings(filters: GetManyPendingFilters): Promise<{
18
+ ratings: import("../data-transfer-objects/rating.dto.js").PublicRatingDTO[];
19
+ nextCursor: import("../shared-types/rating.shared-types.js").RatingCursor | undefined;
20
+ }>;
21
+ submit(params: CreateRatingParams): Promise<{
22
+ rating: import("../data-transfer-objects/rating.dto.js").PublicRatingDTO;
23
+ }>;
24
+ delete(params: DeleteRatingParams): Promise<{
25
+ rating: import("../data-transfer-objects/rating.dto.js").PublicRatingDTO;
26
+ }>;
27
+ approve(params: UpdateRatingParams): Promise<{
28
+ rating: import("../data-transfer-objects/rating.dto.js").PublicRatingDTO;
29
+ }>;
30
+ }
31
+ //# sourceMappingURL=rating.service.d.ts.map
@@ -0,0 +1,122 @@
1
+ import { OrderStatus } from "@prisma/client";
2
+ type WilayaId = string;
3
+ type WilayaName = string;
4
+ type CommuneName = string;
5
+ type PostalCode = string;
6
+ type HasStopDesk = boolean;
7
+ type OrderReference = string;
8
+ type ClientName = string;
9
+ type PhoneNumber = string;
10
+ type Address = string;
11
+ type Note = string;
12
+ type useStopDesk = boolean;
13
+ type TrackingNumber = string;
14
+ type MoneyAmount = number;
15
+ type IsFargile = boolean;
16
+ type GPSLink = string;
17
+ type Success = boolean;
18
+ type StationName = string;
19
+ export type ShippingServiceType = "delivery" | "exchange";
20
+ type TrackingStatus = "order_information_received_by_carrier" | "picked" | "accepted_by_carrier" | "dispatched_to_driver" | "attempt_delivery" | "return_asked" | "return_in_transit" | "Return_received" | "livred" | "encaissed" | "payed";
21
+ export type GetActiveWilayasOfProviderReturn = Promise<{
22
+ wilayaId: WilayaId;
23
+ wilayaName: WilayaName;
24
+ }[]>;
25
+ export type GetActiveCommunesOfWilayaReturn = Promise<{
26
+ name: CommuneName;
27
+ wilayaId: WilayaId;
28
+ postalCode: PostalCode;
29
+ hasStopDesk: HasStopDesk;
30
+ }[]>;
31
+ export interface CreateOrderParams {
32
+ reference: OrderReference;
33
+ clientName: ClientName;
34
+ phone: PhoneNumber;
35
+ phone2: PhoneNumber | null;
36
+ address: Address;
37
+ postalCode: PostalCode;
38
+ commune: CommuneName;
39
+ wilayaCode: WilayaId;
40
+ totalMoneyToBeCollected: MoneyAmount;
41
+ note: Note | null;
42
+ useStopDesk: useStopDesk;
43
+ isFragile: IsFargile;
44
+ gpsLink: GPSLink | null;
45
+ weightInKg: number;
46
+ stock: boolean;
47
+ type: ShippingServiceType;
48
+ }
49
+ export type CreateOrderReturn = Promise<{
50
+ trackingNumber: TrackingNumber;
51
+ }>;
52
+ export type GetFeesOfWilayaReturn = Promise<{
53
+ homeDeliveryFee: MoneyAmount;
54
+ stopeDeskFee: MoneyAmount;
55
+ }>;
56
+ export interface UpdateUnShippedOrderParams {
57
+ trackingNumber: TrackingNumber;
58
+ data: {
59
+ reference: OrderReference;
60
+ clientName: ClientName;
61
+ phone: PhoneNumber;
62
+ phone2?: PhoneNumber | undefined;
63
+ address: Address;
64
+ postalCode: PostalCode;
65
+ commune: CommuneName;
66
+ wilayaCode: WilayaId;
67
+ note?: Note | undefined;
68
+ isFragile: IsFargile;
69
+ gpsLink?: GPSLink | undefined;
70
+ };
71
+ }
72
+ export type UpdateUnShippedOrderReturn = Promise<{
73
+ success: Success;
74
+ }>;
75
+ export type CreateShipmentReturn = Promise<{
76
+ success: Success;
77
+ }>;
78
+ export type DeleteUnshippedOrderReturn = Promise<{
79
+ success: Success;
80
+ }>;
81
+ export type CreateManyOrdersReturn = Promise<{
82
+ created: {
83
+ orderId: OrderReference;
84
+ trackingNumber: TrackingNumber;
85
+ }[];
86
+ failed: {
87
+ orderId: OrderReference;
88
+ trackingNumber: TrackingNumber;
89
+ }[];
90
+ }>;
91
+ export type GetTrackingHistoryOfOrderReturn = Promise<{
92
+ activity: {
93
+ date: string;
94
+ time: string;
95
+ status: TrackingStatus;
96
+ station?: StationName;
97
+ }[];
98
+ }>;
99
+ export type GetOneOrderDetailsAndStatusReturn = Promise<{
100
+ status: OrderStatus;
101
+ orderId: string;
102
+ }>;
103
+ export type GetManyOrdersDetailsAndStatusReturn = Promise<{
104
+ status: OrderStatus;
105
+ orderId: string;
106
+ }[]>;
107
+ export interface ShippingService {
108
+ getActiveWilayasOfProvider: () => GetActiveWilayasOfProviderReturn;
109
+ getActiveCommunesOfWilaya: (wilayaId: string) => GetActiveCommunesOfWilayaReturn;
110
+ getSingleLabelPdfUrl: (trackingNumber: TrackingNumber) => {};
111
+ createShipment: (trackingNumber: TrackingNumber) => CreateShipmentReturn;
112
+ getDeliveryFeesOfWilaya: (wilayaId: number) => GetFeesOfWilayaReturn;
113
+ createOrder: (params: CreateOrderParams) => CreateOrderReturn;
114
+ createManyOrders: (params: CreateOrderParams[]) => CreateManyOrdersReturn;
115
+ updateUnShippedOrder: (params: UpdateUnShippedOrderParams) => UpdateUnShippedOrderReturn;
116
+ deleteUnshippedOrder: (trackingNumber: TrackingNumber) => DeleteUnshippedOrderReturn;
117
+ getTrackingHistoryOfOrder: (trackingNumber: TrackingNumber) => GetTrackingHistoryOfOrderReturn;
118
+ getOneOrderDetailsAndStatus: (trackingNumber: TrackingNumber) => GetOneOrderDetailsAndStatusReturn;
119
+ getManyOrdersDetailsAndStatus: (trackingNumbers: TrackingNumber[]) => GetManyOrdersDetailsAndStatusReturn;
120
+ }
121
+ export {};
122
+ //# sourceMappingURL=service-definitons.d.ts.map