@mac777/project-pinecone-schema 1.0.0
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.
- package/dist/auth/auth.constants.d.ts +8 -0
- package/dist/auth/auth.constants.js +12 -0
- package/dist/auth/auth.schema.d.ts +100 -0
- package/dist/auth/auth.schema.js +53 -0
- package/dist/auth/auth.type.d.ts +31 -0
- package/dist/auth/auth.type.js +2 -0
- package/dist/auth/index.d.ts +3 -0
- package/dist/auth/index.js +19 -0
- package/dist/auth/utils/password.schema.d.ts +4 -0
- package/dist/auth/utils/password.schema.js +18 -0
- package/dist/auth.d.ts +1 -0
- package/dist/auth.js +18 -0
- package/dist/events/admin.schema.d.ts +208 -0
- package/dist/events/admin.schema.js +70 -0
- package/dist/events/age.restriction.schema.d.ts +2 -0
- package/dist/events/age.restriction.schema.js +5 -0
- package/dist/events/document.schema.d.ts +17 -0
- package/dist/events/document.schema.js +10 -0
- package/dist/events/event.schema.d.ts +0 -0
- package/dist/events/event.schema.js +1 -0
- package/dist/events/event.type.schema.d.ts +2 -0
- package/dist/events/event.type.schema.js +5 -0
- package/dist/events/events.constant.d.ts +9 -0
- package/dist/events/events.constant.js +12 -0
- package/dist/events/events.constants.d.ts +69 -0
- package/dist/events/events.constants.js +147 -0
- package/dist/events/events.d.ts +3 -0
- package/dist/events/events.js +19 -0
- package/dist/events/events.schema.d.ts +4605 -0
- package/dist/events/events.schema.js +145 -0
- package/dist/events/events.type.d.ts +47 -0
- package/dist/events/events.type.js +2 -0
- package/dist/events/events.utils.schema.d.ts +5 -0
- package/dist/events/events.utils.schema.js +21 -0
- package/dist/events/index.d.ts +4 -0
- package/dist/events/index.js +20 -0
- package/dist/events/media.schema.d.ts +77 -0
- package/dist/events/media.schema.js +36 -0
- package/dist/events/organizer.schema.d.ts +55 -0
- package/dist/events/organizer.schema.js +15 -0
- package/dist/events/schedule.schema.d.ts +20 -0
- package/dist/events/schedule.schema.js +11 -0
- package/dist/events/step.schema.d.ts +0 -0
- package/dist/events/step.schema.js +1 -0
- package/dist/events/ticket.schema.d.ts +113 -0
- package/dist/events/ticket.schema.js +29 -0
- package/dist/events/utils/admin.schema.d.ts +208 -0
- package/dist/events/utils/admin.schema.js +70 -0
- package/dist/events/utils/age.restriction.schema.d.ts +2 -0
- package/dist/events/utils/age.restriction.schema.js +5 -0
- package/dist/events/utils/document.schema.d.ts +17 -0
- package/dist/events/utils/document.schema.js +10 -0
- package/dist/events/utils/event.type.schema.d.ts +2 -0
- package/dist/events/utils/event.type.schema.js +5 -0
- package/dist/events/utils/media.schema.d.ts +77 -0
- package/dist/events/utils/media.schema.js +36 -0
- package/dist/events/utils/organizer.schema.d.ts +55 -0
- package/dist/events/utils/organizer.schema.js +15 -0
- package/dist/events/utils/schedule.schema.d.ts +20 -0
- package/dist/events/utils/schedule.schema.js +11 -0
- package/dist/events/utils/ticket.schema.d.ts +119 -0
- package/dist/events/utils/ticket.schema.js +31 -0
- package/dist/events/utils/venue.schema.d.ts +75 -0
- package/dist/events/utils/venue.schema.js +22 -0
- package/dist/events/utils.schema.d.ts +6 -0
- package/dist/events/utils.schema.js +22 -0
- package/dist/events/venue.schema.d.ts +75 -0
- package/dist/events/venue.schema.js +22 -0
- package/dist/events.constant.d.ts +9 -0
- package/dist/events.constant.js +12 -0
- package/dist/events.constants.d.ts +9 -0
- package/dist/events.constants.js +12 -0
- package/dist/events.d.ts +39 -0
- package/dist/events.js +2 -0
- package/dist/events.schema.d.ts +229 -0
- package/dist/events.schema.js +95 -0
- package/dist/events.type.d.ts +42 -0
- package/dist/events.type.js +2 -0
- package/dist/events.utils.schema.d.ts +6 -0
- package/dist/events.utils.schema.js +22 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +20 -0
- package/dist/media/index.d.ts +2 -0
- package/dist/media/index.js +18 -0
- package/dist/media/media.schema.d.ts +57 -0
- package/dist/media/media.schema.js +37 -0
- package/dist/media/media.type.d.ts +8 -0
- package/dist/media/media.type.js +2 -0
- package/dist/media/utils/backblaze.schema.d.ts +14 -0
- package/dist/media/utils/backblaze.schema.js +10 -0
- package/dist/media/utils/imagekit.schema.d.ts +34 -0
- package/dist/media/utils/imagekit.schema.js +20 -0
- package/dist/orders/index.d.ts +6 -0
- package/dist/orders/index.js +22 -0
- package/dist/orders/orders.schema.d.ts +600 -0
- package/dist/orders/orders.schema.js +89 -0
- package/dist/orders/orders.type.d.ts +56 -0
- package/dist/orders/orders.type.js +2 -0
- package/dist/orders/payments.schema.d.ts +215 -0
- package/dist/orders/payments.schema.js +67 -0
- package/dist/orders/payments.type.d.ts +58 -0
- package/dist/orders/payments.type.js +2 -0
- package/dist/orders/ticket.schema.d.ts +265 -0
- package/dist/orders/ticket.schema.js +65 -0
- package/dist/orders/ticket.type.d.ts +71 -0
- package/dist/orders/ticket.type.js +2 -0
- package/package.json +21 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ticketsListResponseSchema = exports.ticketResponseSchema = exports.transferTicketSchema = exports.checkInTicketSchema = exports.updateTicketStatusSchema = exports.createTicketSchema = exports.ticketSchema = exports.checkInStatusSchema = exports.ticketStatusSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
// Ticket status enum
|
|
6
|
+
exports.ticketStatusSchema = zod_1.z.enum(['valid', 'used', 'cancelled', 'refunded', 'transferred']);
|
|
7
|
+
// Check-in status enum
|
|
8
|
+
exports.checkInStatusSchema = zod_1.z.enum(['not_checked_in', 'checked_in']);
|
|
9
|
+
// Main ticket schema
|
|
10
|
+
exports.ticketSchema = zod_1.z.object({
|
|
11
|
+
_id: zod_1.z.string().optional(), // MongoDB ObjectId
|
|
12
|
+
ticketNumber: zod_1.z.string().regex(/^TKT-[A-Z0-9]{6}-[A-Z0-9]{4}-\d{2}$/), // TKT-EVT123-A3K9-01
|
|
13
|
+
// BELONGS TO
|
|
14
|
+
orderId: zod_1.z.string(), // Parent order
|
|
15
|
+
eventId: zod_1.z.string(), // Which event
|
|
16
|
+
userId: zod_1.z.string(), // Owner
|
|
17
|
+
ticketVariantId: zod_1.z.string(), // Which type (VIP, GA, etc)
|
|
18
|
+
// DETAILS (denormalized for speed)
|
|
19
|
+
eventTitle: zod_1.z.string(),
|
|
20
|
+
eventDate: zod_1.z.date(),
|
|
21
|
+
eventVenue: zod_1.z.string(),
|
|
22
|
+
ticketType: zod_1.z.string(), // "VIP Pass"
|
|
23
|
+
price: zod_1.z.number().min(0),
|
|
24
|
+
// QR CODE
|
|
25
|
+
qrCode: zod_1.z.string(), // SHA256 hash
|
|
26
|
+
qrCodeUrl: zod_1.z.string(), // ImageKit/S3 URL
|
|
27
|
+
// STATUS
|
|
28
|
+
status: exports.ticketStatusSchema,
|
|
29
|
+
// CHECK-IN
|
|
30
|
+
checkInStatus: exports.checkInStatusSchema,
|
|
31
|
+
checkedInAt: zod_1.z.date().optional(),
|
|
32
|
+
checkedInBy: zod_1.z.string().optional(), // Staff user ID
|
|
33
|
+
// TRANSFER
|
|
34
|
+
transferredTo: zod_1.z.string().optional(), // New owner user ID
|
|
35
|
+
transferredAt: zod_1.z.date().optional(),
|
|
36
|
+
// LIFECYCLE
|
|
37
|
+
issuedAt: zod_1.z.date().default(() => new Date()),
|
|
38
|
+
validUntil: zod_1.z.date(), // Event end date
|
|
39
|
+
// SECURITY
|
|
40
|
+
secretHash: zod_1.z.string(), // Internal validation hash
|
|
41
|
+
});
|
|
42
|
+
// API request/response schemas
|
|
43
|
+
exports.createTicketSchema = zod_1.z.object({
|
|
44
|
+
orderId: zod_1.z.string(),
|
|
45
|
+
eventId: zod_1.z.string(),
|
|
46
|
+
userId: zod_1.z.string(),
|
|
47
|
+
ticketVariantId: zod_1.z.string(),
|
|
48
|
+
eventTitle: zod_1.z.string(),
|
|
49
|
+
eventDate: zod_1.z.date(),
|
|
50
|
+
eventVenue: zod_1.z.string(),
|
|
51
|
+
ticketType: zod_1.z.string(),
|
|
52
|
+
price: zod_1.z.number().min(0),
|
|
53
|
+
});
|
|
54
|
+
exports.updateTicketStatusSchema = zod_1.z.object({
|
|
55
|
+
status: exports.ticketStatusSchema,
|
|
56
|
+
});
|
|
57
|
+
exports.checkInTicketSchema = zod_1.z.object({
|
|
58
|
+
staffUserId: zod_1.z.string(),
|
|
59
|
+
});
|
|
60
|
+
exports.transferTicketSchema = zod_1.z.object({
|
|
61
|
+
newOwnerId: zod_1.z.string(),
|
|
62
|
+
});
|
|
63
|
+
// Response schemas
|
|
64
|
+
exports.ticketResponseSchema = exports.ticketSchema;
|
|
65
|
+
exports.ticketsListResponseSchema = zod_1.z.array(exports.ticketResponseSchema);
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ticketSchema, ticketStatusSchema, checkInStatusSchema, createTicketSchema, updateTicketStatusSchema, checkInTicketSchema, transferTicketSchema, ticketResponseSchema, ticketsListResponseSchema } from './ticket.schema';
|
|
3
|
+
export type TicketStatus = z.infer<typeof ticketStatusSchema>;
|
|
4
|
+
export type CheckInStatus = z.infer<typeof checkInStatusSchema>;
|
|
5
|
+
export type Ticket = z.infer<typeof ticketSchema>;
|
|
6
|
+
export type CreateTicketRequest = z.infer<typeof createTicketSchema>;
|
|
7
|
+
export type UpdateTicketStatusRequest = z.infer<typeof updateTicketStatusSchema>;
|
|
8
|
+
export type CheckInTicketRequest = z.infer<typeof checkInTicketSchema>;
|
|
9
|
+
export type TransferTicketRequest = z.infer<typeof transferTicketSchema>;
|
|
10
|
+
export type TicketResponse = z.infer<typeof ticketResponseSchema>;
|
|
11
|
+
export type TicketsListResponse = z.infer<typeof ticketsListResponseSchema>;
|
|
12
|
+
export interface CreateTicketData {
|
|
13
|
+
orderId: string;
|
|
14
|
+
eventId: string;
|
|
15
|
+
userId: string;
|
|
16
|
+
ticketVariantId: string;
|
|
17
|
+
eventTitle: string;
|
|
18
|
+
eventDate: Date;
|
|
19
|
+
eventVenue: string;
|
|
20
|
+
ticketType: string;
|
|
21
|
+
price: number;
|
|
22
|
+
quantity: number;
|
|
23
|
+
}
|
|
24
|
+
export interface UpdateTicketData {
|
|
25
|
+
ticketId: string;
|
|
26
|
+
status: TicketStatus;
|
|
27
|
+
}
|
|
28
|
+
export interface CheckInTicketData {
|
|
29
|
+
ticketId: string;
|
|
30
|
+
staffUserId: string;
|
|
31
|
+
}
|
|
32
|
+
export interface TransferTicketData {
|
|
33
|
+
ticketId: string;
|
|
34
|
+
newOwnerId: string;
|
|
35
|
+
}
|
|
36
|
+
export interface TicketWithOrder extends Omit<Ticket, 'orderId'> {
|
|
37
|
+
orderId: {
|
|
38
|
+
_id: string;
|
|
39
|
+
orderNumber: string;
|
|
40
|
+
status: string;
|
|
41
|
+
createdAt: string;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export interface TicketWithEvent extends Omit<Ticket, 'eventId'> {
|
|
45
|
+
eventId: {
|
|
46
|
+
_id: string;
|
|
47
|
+
title: string;
|
|
48
|
+
schedule: {
|
|
49
|
+
startDate: string;
|
|
50
|
+
venue: {
|
|
51
|
+
name: string;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
export interface TicketSummary {
|
|
57
|
+
totalTickets: number;
|
|
58
|
+
validTickets: number;
|
|
59
|
+
usedTickets: number;
|
|
60
|
+
checkedInTickets: number;
|
|
61
|
+
cancelledTickets: number;
|
|
62
|
+
refundedTickets: number;
|
|
63
|
+
}
|
|
64
|
+
export interface QRCodeData {
|
|
65
|
+
ticketId: string;
|
|
66
|
+
ticketNumber: string;
|
|
67
|
+
eventTitle: string;
|
|
68
|
+
eventDate: string;
|
|
69
|
+
userId: string;
|
|
70
|
+
secretHash: string;
|
|
71
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mac777/project-pinecone-schema",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "dist/index.js",
|
|
5
|
+
"types": "dist/index.d.ts",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"build": "tsc",
|
|
8
|
+
"dev": "tsc -w"
|
|
9
|
+
},
|
|
10
|
+
"dependencies": {
|
|
11
|
+
"zod": "^3.22.4",
|
|
12
|
+
"zxcvbn": "^4.4.2"
|
|
13
|
+
},
|
|
14
|
+
"files": ["dist"],
|
|
15
|
+
"publishConfig": {
|
|
16
|
+
"access": "public"
|
|
17
|
+
},
|
|
18
|
+
"devDependencies": {
|
|
19
|
+
"typescript": "^5.0.0"
|
|
20
|
+
}
|
|
21
|
+
}
|