diff --git a/src/datasources/db/userTickets.ts b/src/datasources/db/userTickets.ts index 246b9cd8..332ac47a 100644 --- a/src/datasources/db/userTickets.ts +++ b/src/datasources/db/userTickets.ts @@ -3,16 +3,20 @@ import { pgTable, text, uuid } from "drizzle-orm/pg-core"; import { createInsertSchema, createSelectSchema } from "drizzle-zod"; import { purchaseOrdersSchema, ticketsSchema, usersSchema } from "./schema"; -import { createdAndUpdatedAtFields } from "./shared"; +import { + createdAndUpdatedAtFields, + TypescriptEnumAsDBEnumOptions, +} from "./shared"; -export const userTicketsApprovalStatusEnum = [ - "approved", - "pending", - "gifted", - "not_required", - "rejected", - "cancelled", -] as const; +export enum UserTicketsApprovalStatusEnum { + Approved = "approved", + GiftAccepted = "gift_accepted", + NotRequired = "not_required", + Pending = "pending", + Gifted = "gifted", + Rejected = "rejected", + Cancelled = "cancelled", +} export const userTicketsRedemptionStatusEnum = ["redeemed", "pending"] as const; // USER-TICKETS-TABLE export const userTicketsSchema = pgTable("user_tickets", { @@ -25,9 +29,9 @@ export const userTicketsSchema = pgTable("user_tickets", { .references(() => purchaseOrdersSchema.id) .notNull(), approvalStatus: text("approval_status", { - enum: userTicketsApprovalStatusEnum, + enum: TypescriptEnumAsDBEnumOptions(UserTicketsApprovalStatusEnum), }) - .default("pending") + .default(UserTicketsApprovalStatusEnum.Pending) .notNull(), redemptionStatus: text("redemption_status", { enum: userTicketsRedemptionStatusEnum, diff --git a/src/generated/schema.gql b/src/generated/schema.gql index f91a8ff1..a1500609 100644 --- a/src/generated/schema.gql +++ b/src/generated/schema.gql @@ -814,6 +814,7 @@ type Ticket { The number of tickets available for this ticket type """ quantity: Int + quantityLeft: Int requiresApproval: Boolean! startDateTime: DateTime! status: TicketTemplateStatus! @@ -821,12 +822,13 @@ type Ticket { } enum TicketApprovalStatus { - approved - cancelled - gifted - not_required - pending - rejected + Approved + Cancelled + GiftAccepted + Gifted + NotRequired + Pending + Rejected } input TicketClaimInput { diff --git a/src/generated/types.ts b/src/generated/types.ts index 1d3b44a2..9c78c793 100644 --- a/src/generated/types.ts +++ b/src/generated/types.ts @@ -840,6 +840,7 @@ export type Ticket = { prices?: Maybe>; /** The number of tickets available for this ticket type */ quantity?: Maybe; + quantityLeft?: Maybe; requiresApproval: Scalars["Boolean"]["output"]; startDateTime: Scalars["DateTime"]["output"]; status: TicketTemplateStatus; @@ -847,12 +848,13 @@ export type Ticket = { }; export enum TicketApprovalStatus { - Approved = "approved", - Cancelled = "cancelled", - Gifted = "gifted", - NotRequired = "not_required", - Pending = "pending", - Rejected = "rejected", + Approved = "Approved", + Cancelled = "Cancelled", + GiftAccepted = "GiftAccepted", + Gifted = "Gifted", + NotRequired = "NotRequired", + Pending = "Pending", + Rejected = "Rejected", } export type TicketClaimInput = { diff --git a/src/schema/events/tests/events.test.ts b/src/schema/events/tests/events.test.ts index ce97269f..2174a2ea 100644 --- a/src/schema/events/tests/events.test.ts +++ b/src/schema/events/tests/events.test.ts @@ -5,10 +5,12 @@ import { UserParticipationStatusEnum, UserTeamRoleEnum, } from "~/datasources/db/userTeams"; +import { UserTicketsApprovalStatusEnum } from "~/datasources/db/userTickets"; import { EventStatus, EventVisibility, ParticipationStatus, + PurchaseOrderPaymentStatusEnum, TicketApprovalStatus, TicketPaymentStatus, TicketRedemptionStatus, @@ -56,8 +58,8 @@ describe("Event", () => { id: event1.id, name: event1.name, description: event1.description, - status: event1.status, - visibility: event1.visibility, + status: EventStatus.Active, + visibility: EventVisibility.Public, startDateTime: toISODate(event1.startDateTime), endDateTime: toISODate(event1.endDateTime), community: null, @@ -65,7 +67,7 @@ describe("Event", () => { teams: [], users: [], usersTickets: [], - } as EventQuery["event"]); + } satisfies EventQuery["event"]); }); it("Should get an event Tags", async () => { const event1 = await insertEvent(); @@ -101,8 +103,8 @@ describe("Event", () => { id: event1.id, name: event1.name, description: event1.description, - status: event1.status, - visibility: event1.visibility, + status: EventStatus.Active, + visibility: EventVisibility.Public, startDateTime: toISODate(event1.startDateTime), endDateTime: toISODate(event1.endDateTime), community: null, @@ -117,7 +119,7 @@ describe("Event", () => { }, ], usersTickets: [], - } as EventQuery["event"]); + } satisfies EventQuery["event"]); }); it("a user should get only their own event tickets", async () => { const community1 = await insertCommunity(); @@ -148,33 +150,33 @@ describe("Event", () => { ticketTemplateId: ticketTemplate1.id, userId: user1.id, purchaseOrderId: purchaseOrder.id, - approvalStatus: "approved", + approvalStatus: UserTicketsApprovalStatusEnum.Approved, }); await insertTicket({ ticketTemplateId: ticketTemplate1.id, userId: user1.id, purchaseOrderId: purchaseOrder.id, - approvalStatus: "cancelled", + approvalStatus: UserTicketsApprovalStatusEnum.Cancelled, }); await insertTicket({ ticketTemplateId: ticketTemplate1.id, userId: user1.id, purchaseOrderId: purchaseOrder.id, - approvalStatus: "pending", + approvalStatus: UserTicketsApprovalStatusEnum.Pending, }); const ticket2 = await insertTicket({ ticketTemplateId: ticketTemplate1.id, userId: user1.id, purchaseOrderId: purchaseOrder.id, - approvalStatus: "not_required", + approvalStatus: UserTicketsApprovalStatusEnum.NotRequired, }); await insertTicket({ ticketTemplateId: ticketTemplate1.id, userId: user2.id, purchaseOrderId: purchaseOrder.id, - approvalStatus: "approved", + approvalStatus: UserTicketsApprovalStatusEnum.Approved, }); const response = await executeGraphqlOperationAsUser< EventQuery, @@ -196,8 +198,8 @@ describe("Event", () => { id: event1.id, name: event1.name, description: event1.description, - status: event1.status, - visibility: event1.visibility, + status: EventStatus.Active, + visibility: EventVisibility.Public, startDateTime: toISODate(event1.startDateTime), endDateTime: toISODate(event1.endDateTime), community: { @@ -213,20 +215,20 @@ describe("Event", () => { usersTickets: [ { id: ticket2.id, - approvalStatus: ticket2.approvalStatus, - paymentStatus: purchaseOrder.purchaseOrderPaymentStatus, - redemptionStatus: ticket2.redemptionStatus, + approvalStatus: TicketApprovalStatus.NotRequired, + paymentStatus: PurchaseOrderPaymentStatusEnum.Unpaid, + redemptionStatus: TicketRedemptionStatus.Pending, createdAt: toISODate(ticket2.createdAt), }, { id: ticket1.id, - approvalStatus: ticket1.approvalStatus, - paymentStatus: purchaseOrder.purchaseOrderPaymentStatus, - redemptionStatus: ticket1.redemptionStatus, + approvalStatus: TicketApprovalStatus.Approved, + paymentStatus: PurchaseOrderPaymentStatusEnum.Unpaid, + redemptionStatus: TicketRedemptionStatus.Pending, createdAt: toISODate(ticket1.createdAt), }, ], - } as EventQuery["event"]); + } satisfies EventQuery["event"]); }); it("Should get an event community", async () => { const event1 = await insertEvent(); @@ -253,8 +255,8 @@ describe("Event", () => { id: event1.id, name: event1.name, description: event1.description, - status: event1.status, - visibility: event1.visibility, + status: EventStatus.Active, + visibility: EventVisibility.Public, startDateTime: toISODate(event1.startDateTime), endDateTime: toISODate(event1.endDateTime), users: [], @@ -264,7 +266,7 @@ describe("Event", () => { tags: [], teams: [], usersTickets: [], - } as EventQuery["event"]); + } satisfies EventQuery["event"]); }); it("Should get an event users", async () => { const event1 = await insertEvent(); @@ -284,8 +286,8 @@ describe("Event", () => { id: event1.id, name: event1.name, description: event1.description, - status: event1.status, - visibility: event1.visibility, + status: EventStatus.Active, + visibility: EventVisibility.Public, startDateTime: toISODate(event1.startDateTime), endDateTime: toISODate(event1.endDateTime), users: [], @@ -293,7 +295,7 @@ describe("Event", () => { tags: [], teams: [], usersTickets: [], - } as EventQuery["event"]); + } satisfies EventQuery["event"]); }); it("return null when no event is found", async () => { const response = await executeGraphqlOperationAsSuperAdmin< @@ -512,7 +514,7 @@ describe("Events", () => { ticketTemplateId: ticketTemplate1.id, userId: user1.id, purchaseOrderId: purchaseOrder.id, - approvalStatus: "approved", + approvalStatus: UserTicketsApprovalStatusEnum.Approved, }); const purchaseOrder2 = await insertPurchaseOrder(); @@ -521,7 +523,7 @@ describe("Events", () => { ticketTemplateId: ticketTemplate2.id, userId: user1.id, purchaseOrderId: purchaseOrder2.id, - approvalStatus: "cancelled", + approvalStatus: UserTicketsApprovalStatusEnum.Cancelled, }); await insertEvent({ @@ -732,7 +734,7 @@ describe("Event tickets filter", () => { ticketTemplateId: ticketTemplate1.id, userId: user1.id, purchaseOrderId: purchaseOrder.id, - approvalStatus: TicketApprovalStatus.Approved, + approvalStatus: UserTicketsApprovalStatusEnum.Approved, }); await insertTicket({ @@ -762,8 +764,8 @@ describe("Event tickets filter", () => { id: event1.id, name: event1.name, description: event1.description, - status: event1.status, - visibility: event1.visibility, + status: EventStatus.Active, + visibility: EventVisibility.Public, startDateTime: toISODate(event1.startDateTime), endDateTime: toISODate(event1.endDateTime), community: { @@ -779,13 +781,14 @@ describe("Event tickets filter", () => { usersTickets: [ { id: ticket1.id, - approvalStatus: ticket1.approvalStatus, - paymentStatus: purchaseOrder.purchaseOrderPaymentStatus, - redemptionStatus: ticket1.redemptionStatus, + + approvalStatus: TicketApprovalStatus.Approved, + paymentStatus: PurchaseOrderPaymentStatusEnum.Unpaid, + redemptionStatus: TicketRedemptionStatus.Pending, createdAt: toISODate(ticket1.createdAt), }, ], - } as EventQuery["event"]); + } satisfies EventQuery["event"]); }); it("Should filter event ticket by approval status", async () => { @@ -815,14 +818,14 @@ describe("Event tickets filter", () => { const ticket1 = await insertTicket({ ticketTemplateId: ticketTemplate1.id, userId: user1.id, - approvalStatus: TicketApprovalStatus.Approved, + approvalStatus: UserTicketsApprovalStatusEnum.Approved, purchaseOrderId: purchaseOrder.id, }); await insertTicket({ ticketTemplateId: ticketTemplate1.id, userId: user1.id, - approvalStatus: TicketApprovalStatus.Pending, + approvalStatus: UserTicketsApprovalStatusEnum.Pending, purchaseOrderId: purchaseOrder.id, }); const response = await executeGraphqlOperationAsUser< @@ -847,8 +850,8 @@ describe("Event tickets filter", () => { id: event1.id, name: event1.name, description: event1.description, - status: event1.status, - visibility: event1.visibility, + status: EventStatus.Active, + visibility: EventVisibility.Public, startDateTime: toISODate(event1.startDateTime), endDateTime: toISODate(event1.endDateTime), community: { @@ -864,13 +867,13 @@ describe("Event tickets filter", () => { usersTickets: [ { id: ticket1.id, - approvalStatus: ticket1.approvalStatus, - paymentStatus: purchaseOrder.purchaseOrderPaymentStatus, - redemptionStatus: ticket1.redemptionStatus, + approvalStatus: TicketApprovalStatus.Approved, + paymentStatus: PurchaseOrderPaymentStatusEnum.Unpaid, + redemptionStatus: TicketRedemptionStatus.Pending, createdAt: toISODate(ticket1.createdAt), }, ], - } as EventQuery["event"]); + } satisfies EventQuery["event"]); }); it("Should filter event ticket by payment status", async () => { @@ -904,7 +907,7 @@ describe("Event tickets filter", () => { ticketTemplateId: ticketTemplate1.id, userId: user1.id, purchaseOrderId: purchaseOrder.id, - approvalStatus: TicketApprovalStatus.Approved, + approvalStatus: UserTicketsApprovalStatusEnum.Approved, createdAt: date1, }); @@ -913,7 +916,7 @@ describe("Event tickets filter", () => { ticketTemplateId: ticketTemplate1.id, userId: user1.id, purchaseOrderId: purchaseOrder.id, - approvalStatus: TicketApprovalStatus.Approved, + approvalStatus: UserTicketsApprovalStatusEnum.Approved, createdAt: date2, }); const response = await executeGraphqlOperationAsUser< @@ -938,8 +941,8 @@ describe("Event tickets filter", () => { id: event1.id, name: event1.name, description: event1.description, - status: event1.status, - visibility: event1.visibility, + status: EventStatus.Active, + visibility: EventVisibility.Public, startDateTime: toISODate(event1.startDateTime), endDateTime: toISODate(event1.endDateTime), community: { @@ -955,20 +958,20 @@ describe("Event tickets filter", () => { usersTickets: [ { id: ticket2.id, - approvalStatus: ticket1.approvalStatus, - paymentStatus: purchaseOrder.purchaseOrderPaymentStatus, - redemptionStatus: ticket1.redemptionStatus, + approvalStatus: TicketApprovalStatus.Approved, + paymentStatus: PurchaseOrderPaymentStatusEnum.Paid, + redemptionStatus: TicketRedemptionStatus.Pending, createdAt: toISODate(ticket2.createdAt), }, { id: ticket1.id, - approvalStatus: ticket2.approvalStatus, - paymentStatus: purchaseOrder.purchaseOrderPaymentStatus, - redemptionStatus: ticket2.redemptionStatus, + approvalStatus: TicketApprovalStatus.Approved, + paymentStatus: PurchaseOrderPaymentStatusEnum.Paid, + redemptionStatus: TicketRedemptionStatus.Pending, createdAt: toISODate(ticket1.createdAt), }, ], - } as EventQuery["event"]); + } satisfies EventQuery["event"]); }); it("Should filter event ticket by redemption status", async () => { @@ -1000,7 +1003,7 @@ describe("Event tickets filter", () => { userId: user1.id, redemptionStatus: TicketRedemptionStatus.Redeemed, purchaseOrderId: purchaseOrder.id, - approvalStatus: TicketApprovalStatus.Approved, + approvalStatus: UserTicketsApprovalStatusEnum.Approved, }); await insertTicket({ @@ -1008,7 +1011,7 @@ describe("Event tickets filter", () => { userId: user1.id, redemptionStatus: TicketRedemptionStatus.Pending, purchaseOrderId: purchaseOrder.id, - approvalStatus: TicketApprovalStatus.Approved, + approvalStatus: UserTicketsApprovalStatusEnum.Approved, }); const response = await executeGraphqlOperationAsUser< EventQuery, @@ -1032,8 +1035,8 @@ describe("Event tickets filter", () => { id: event1.id, name: event1.name, description: event1.description, - status: event1.status, - visibility: event1.visibility, + status: EventStatus.Active, + visibility: EventVisibility.Public, startDateTime: toISODate(event1.startDateTime), endDateTime: toISODate(event1.endDateTime), community: { @@ -1049,12 +1052,12 @@ describe("Event tickets filter", () => { usersTickets: [ { id: ticket1.id, - approvalStatus: ticket1.approvalStatus, - paymentStatus: purchaseOrder.purchaseOrderPaymentStatus, - redemptionStatus: ticket1.redemptionStatus, + approvalStatus: TicketApprovalStatus.Approved, + paymentStatus: PurchaseOrderPaymentStatusEnum.Unpaid, + redemptionStatus: TicketRedemptionStatus.Redeemed, createdAt: toISODate(ticket1.createdAt), }, ], - } as EventQuery["event"]); + } satisfies EventQuery["event"]); }); }); diff --git a/src/schema/ticket/types.ts b/src/schema/ticket/types.ts index 1750e5b6..c76d0f8e 100644 --- a/src/schema/ticket/types.ts +++ b/src/schema/ticket/types.ts @@ -64,6 +64,35 @@ export const TicketLoadable = builder.loadableObject(TicketRef, { description: "The number of tickets available for this ticket type", nullable: true, }), + quantityLeft: t.field({ + type: "Int", + nullable: true, + resolve: async (root, args, ctx) => { + if (root.isUnlimited) { + return null; + } + + if (root.quantity === null) { + return null; + } + + const userTickets = await ctx.DB.query.userTicketsSchema.findMany({ + where: (ut, { eq, and, inArray }) => + and( + eq(ut.ticketTemplateId, root.id), + inArray(ut.approvalStatus, [ + "approved", + "gift_accepted", + "not_required", + "pending", + "gifted", + ]), + ), + }); + + return root.quantity - userTickets.length; + }, + }), isFree: t.exposeBoolean("isFree", { description: "Whether or not the ticket is free", nullable: false, diff --git a/src/schema/userTickets/queries.ts b/src/schema/userTickets/queries.ts index 1ce67be2..022fb793 100644 --- a/src/schema/userTickets/queries.ts +++ b/src/schema/userTickets/queries.ts @@ -2,7 +2,7 @@ import { builder } from "~/builder"; import { selectUserTicketsSchema, USER, - userTicketsApprovalStatusEnum, + UserTicketsApprovalStatusEnum, } from "~/datasources/db/schema"; import { createPaginationInputType, @@ -41,10 +41,7 @@ const MyTicketsSearchValues = builder.inputType("MyTicketsSearchValues", { const PaginatedUserTicketsRef = createPaginationObjectType(UserTicketRef); const getQueryApprovalStatus = ( - approvalStatus: - | (typeof userTicketsApprovalStatusEnum)[number][] - | null - | undefined, + approvalStatus: UserTicketsApprovalStatusEnum[] | null | undefined, user: USER, ) => { if (approvalStatus) { @@ -60,9 +57,11 @@ const getQueryApprovalStatus = ( } }; -const normalUserAllowedAppovalStatus = new Set< - (typeof userTicketsApprovalStatusEnum)[number] ->(["approved", "not_required", "gifted"]); +const normalUserAllowedAppovalStatus = new Set([ + UserTicketsApprovalStatusEnum.Approved, + UserTicketsApprovalStatusEnum.NotRequired, + UserTicketsApprovalStatusEnum.Gifted, +]); builder.queryFields((t) => ({ myTickets: t.field({ diff --git a/src/schema/userTickets/tests/approvalUserTicket/approvalUserTicket.test.ts b/src/schema/userTickets/tests/approvalUserTicket/approvalUserTicket.test.ts index d92f5dca..a4bd6caa 100644 --- a/src/schema/userTickets/tests/approvalUserTicket/approvalUserTicket.test.ts +++ b/src/schema/userTickets/tests/approvalUserTicket/approvalUserTicket.test.ts @@ -1,6 +1,8 @@ import { v4 } from "uuid"; import { it, describe, assert } from "vitest"; +import { UserTicketsApprovalStatusEnum } from "~/datasources/db/userTickets"; +import { TicketApprovalStatus } from "~/generated/types"; import { executeGraphqlOperationAsUser, insertEvent, @@ -53,7 +55,10 @@ describe("Approval user ticket", () => { ); assert.equal(response.errors, undefined); - assert.equal(response.data?.approvalUserTicket?.approvalStatus, "approved"); + assert.equal( + response.data?.approvalUserTicket?.approvalStatus, + TicketApprovalStatus.Approved, + ); }); it("Should approve a user ticket if is event admin", async () => { const event1 = await insertEvent(); @@ -88,7 +93,10 @@ describe("Approval user ticket", () => { ); assert.equal(response.errors, undefined); - assert.equal(response.data?.approvalUserTicket?.approvalStatus, "approved"); + assert.equal( + response.data?.approvalUserTicket?.approvalStatus, + TicketApprovalStatus.Approved, + ); }); it("It should throw an error if the user is not an event admin or superadmin", async () => { const event1 = await insertEvent(); @@ -143,7 +151,7 @@ describe("Approval user ticket", () => { const ticket1 = await insertTicket({ ticketTemplateId: ticketTemplate1.id, userId: user1.id, - approvalStatus: "approved", + approvalStatus: UserTicketsApprovalStatusEnum.Approved, purchaseOrderId: purchaseOrder.id, }); const response = await executeGraphqlOperationAsUser< diff --git a/src/schema/userTickets/tests/redeemUserTicket/redeemUserTicket.test.ts b/src/schema/userTickets/tests/redeemUserTicket/redeemUserTicket.test.ts index 9d30a243..5d8eb04d 100644 --- a/src/schema/userTickets/tests/redeemUserTicket/redeemUserTicket.test.ts +++ b/src/schema/userTickets/tests/redeemUserTicket/redeemUserTicket.test.ts @@ -1,5 +1,6 @@ import { it, describe, assert } from "vitest"; +import { UserTicketsApprovalStatusEnum } from "~/datasources/db/userTickets"; import { executeGraphqlOperationAsUser, insertCommunity, @@ -341,7 +342,7 @@ describe("Redeem user ticket", () => { ticketTemplateId: ticketTemplate1.id, userId: user1.id, purchaseOrderId: purchaseOrder.id, - approvalStatus: "rejected", + approvalStatus: UserTicketsApprovalStatusEnum.Rejected, }); const response = await executeGraphqlOperationAsUser< RedeemUserTicketMutation, @@ -389,7 +390,7 @@ describe("Redeem user ticket", () => { ticketTemplateId: ticketTemplate1.id, userId: user1.id, purchaseOrderId: purchaseOrder.id, - approvalStatus: "cancelled", + approvalStatus: UserTicketsApprovalStatusEnum.Cancelled, }); const response = await executeGraphqlOperationAsUser< RedeemUserTicketMutation, diff --git a/src/schema/userTickets/types.ts b/src/schema/userTickets/types.ts index 2ea74a1a..c07d11de 100644 --- a/src/schema/userTickets/types.ts +++ b/src/schema/userTickets/types.ts @@ -1,6 +1,6 @@ import { builder } from "~/builder"; import { - userTicketsApprovalStatusEnum, + UserTicketsApprovalStatusEnum, puchaseOrderPaymentStatusEnum, userTicketsRedemptionStatusEnum, } from "~/datasources/db/schema"; @@ -14,9 +14,12 @@ import { TicketLoadable } from "~/schema/ticket/types"; export const TicketPaymentStatus = builder.enumType("TicketPaymentStatus", { values: puchaseOrderPaymentStatusEnum, }); -export const TicketApprovalStatus = builder.enumType("TicketApprovalStatus", { - values: userTicketsApprovalStatusEnum, -}); +export const TicketApprovalStatus = builder.enumType( + UserTicketsApprovalStatusEnum, + { + name: "TicketApprovalStatus", + }, +); export const TicketRedemptionStatus = builder.enumType( "TicketRedemptionStatus", { diff --git a/src/schema/userTickets/userTicketFetcher.ts b/src/schema/userTickets/userTicketFetcher.ts index 3fb07afd..efe61b64 100644 --- a/src/schema/userTickets/userTicketFetcher.ts +++ b/src/schema/userTickets/userTicketFetcher.ts @@ -8,7 +8,7 @@ import { } from "~/datasources/db/purchaseOrders"; import { ticketsSchema } from "~/datasources/db/tickets"; import { - userTicketsApprovalStatusEnum, + UserTicketsApprovalStatusEnum, userTicketsRedemptionStatusEnum, userTicketsSchema, } from "~/datasources/db/userTickets"; @@ -23,7 +23,7 @@ export type UserTicketSearch = { userTicketIds?: string[]; ticketIds?: string[]; eventName?: string; - approvalStatus?: (typeof userTicketsApprovalStatusEnum)[number][]; + approvalStatus?: UserTicketsApprovalStatusEnum[]; paymentStatus?: (typeof puchaseOrderPaymentStatusEnum)[number][]; redemptionStatus?: (typeof userTicketsRedemptionStatusEnum)[number][]; }; diff --git a/src/tests/fixtures/index.ts b/src/tests/fixtures/index.ts index d02d530a..b564d780 100644 --- a/src/tests/fixtures/index.ts +++ b/src/tests/fixtures/index.ts @@ -86,6 +86,7 @@ import { selectUserTeamsSchema, userTeamsSchema, PronounsEnum, + UserTicketsApprovalStatusEnum, } from "~/datasources/db/schema"; import { GenderOptionsEnum } from "~/datasources/db/shared"; import { @@ -466,7 +467,7 @@ export const insertTicket = async ( ticketTemplateId: partialInput?.ticketTemplateId ?? (await insertTicketTemplate()).id, approvalStatus: - partialInput?.approvalStatus ?? TicketApprovalStatus.Pending, + partialInput?.approvalStatus ?? UserTicketsApprovalStatusEnum.Pending, redemptionStatus: partialInput?.redemptionStatus ?? TicketRedemptionStatus.Pending, ...CRUDDates(partialInput),