75 lines
1.2 KiB
GraphQL
75 lines
1.2 KiB
GraphQL
scalar UUID
|
|
scalar Timestamp
|
|
scalar JSON
|
|
|
|
enum EventStatus {
|
|
DRAFT
|
|
ACTIVE
|
|
PENDING
|
|
ASSIGNED
|
|
CONFIRMED
|
|
COMPLETED
|
|
CANCELED
|
|
}
|
|
|
|
enum RecurrenceType {
|
|
SINGLE
|
|
DATE_RANGE
|
|
SCATTER
|
|
}
|
|
|
|
type Event @table(name: "events") {
|
|
|
|
id: UUID! @default(expr: "uuidV4()")
|
|
eventName: String!
|
|
isRecurring: Boolean!
|
|
recurrenceType: RecurrenceType
|
|
businessId: UUID!
|
|
vendorId: UUID
|
|
status: EventStatus!
|
|
date: Timestamp!
|
|
shifts: JSON @col(dataType: "jsonb")
|
|
total: Float
|
|
requested: Int
|
|
assignedStaff: JSON @col(dataType: "jsonb")
|
|
createdDate: Timestamp @default(expr: "now()")
|
|
updatedDate: Timestamp @updatedAt
|
|
createdBy: String
|
|
|
|
}
|
|
|
|
input CreateEventInput {
|
|
eventName: String!
|
|
isRecurring: Boolean!
|
|
recurrenceType: RecurrenceType
|
|
businessId: UUID!
|
|
vendorId: UUID
|
|
status: EventStatus!
|
|
date: Timestamp!
|
|
shifts: JSON
|
|
total: Float
|
|
requested: Int
|
|
assignedStaff: JSON
|
|
}
|
|
|
|
query listEvents @auth(level: USER) {
|
|
events {
|
|
id
|
|
eventName
|
|
status
|
|
date
|
|
isRecurring
|
|
recurrenceType
|
|
businessId
|
|
vendorId
|
|
total
|
|
requested
|
|
}
|
|
}
|
|
|
|
mutation createEvent($input: CreateEventInput!) @auth(level: USER) {
|
|
event_insert(data: $input) {
|
|
id
|
|
}
|
|
}
|