308 lines
4.6 KiB
GraphQL
308 lines
4.6 KiB
GraphQL
|
|
# ------------------------------------------------------------
|
|
# LIST SHIFTS (paginated)
|
|
# ------------------------------------------------------------
|
|
query listShifts(
|
|
$offset: Int
|
|
$limit: Int
|
|
) @auth(level: USER) {
|
|
shifts(offset: $offset, limit: $limit) {
|
|
id
|
|
title
|
|
|
|
orderId
|
|
|
|
date
|
|
startTime
|
|
endTime
|
|
hours
|
|
cost
|
|
|
|
location
|
|
locationAddress
|
|
latitude
|
|
longitude
|
|
placeId
|
|
city
|
|
state
|
|
street
|
|
country
|
|
description
|
|
|
|
status
|
|
workersNeeded
|
|
filled
|
|
filledAt
|
|
|
|
managers
|
|
durationDays
|
|
|
|
createdAt
|
|
updatedAt
|
|
createdBy
|
|
|
|
order {
|
|
id
|
|
eventName
|
|
status
|
|
orderType
|
|
businessId
|
|
vendorId
|
|
business { id businessName email contactName }
|
|
vendor { id companyName }
|
|
}
|
|
}
|
|
}
|
|
|
|
# ------------------------------------------------------------
|
|
# GET SHIFT BY ID
|
|
# ------------------------------------------------------------
|
|
query getShiftById($id: UUID!) @auth(level: USER) {
|
|
shift(id: $id) {
|
|
id
|
|
title
|
|
|
|
orderId
|
|
|
|
date
|
|
startTime
|
|
endTime
|
|
hours
|
|
cost
|
|
|
|
location
|
|
locationAddress
|
|
latitude
|
|
longitude
|
|
placeId
|
|
city
|
|
state
|
|
street
|
|
country
|
|
description
|
|
|
|
status
|
|
workersNeeded
|
|
filled
|
|
filledAt
|
|
|
|
managers
|
|
durationDays
|
|
|
|
createdAt
|
|
updatedAt
|
|
createdBy
|
|
|
|
order {
|
|
id
|
|
eventName
|
|
status
|
|
orderType
|
|
businessId
|
|
vendorId
|
|
business { id businessName email contactName }
|
|
vendor { id companyName }
|
|
}
|
|
}
|
|
}
|
|
|
|
# ------------------------------------------------------------
|
|
# FILTER SHIFTS (by status/orderId/date range)
|
|
# NOTE: Timestamp filters use ge/le (not gte/lte)
|
|
# ------------------------------------------------------------
|
|
query filterShifts(
|
|
$status: ShiftStatus
|
|
$orderId: UUID
|
|
|
|
$dateFrom: Timestamp
|
|
$dateTo: Timestamp
|
|
|
|
$offset: Int
|
|
$limit: Int
|
|
) @auth(level: USER) {
|
|
shifts(
|
|
where: {
|
|
status: { eq: $status }
|
|
orderId: { eq: $orderId }
|
|
date: { ge: $dateFrom, le: $dateTo }
|
|
}
|
|
offset: $offset
|
|
limit: $limit
|
|
) {
|
|
id
|
|
title
|
|
|
|
orderId
|
|
|
|
date
|
|
startTime
|
|
endTime
|
|
hours
|
|
cost
|
|
|
|
location
|
|
locationAddress
|
|
latitude
|
|
longitude
|
|
placeId
|
|
city
|
|
state
|
|
street
|
|
country
|
|
description
|
|
|
|
status
|
|
workersNeeded
|
|
filled
|
|
filledAt
|
|
|
|
managers
|
|
durationDays
|
|
|
|
createdAt
|
|
updatedAt
|
|
createdBy
|
|
|
|
order {
|
|
id
|
|
eventName
|
|
status
|
|
orderType
|
|
businessId
|
|
vendorId
|
|
business { id businessName email contactName }
|
|
vendor { id companyName }
|
|
}
|
|
}
|
|
}
|
|
|
|
# ------------------------------------------------------------
|
|
# BUSINESS: GET SHIFTS FOR A BUSINESS (via order.businessId)
|
|
# ------------------------------------------------------------
|
|
query getShiftsByBusinessId(
|
|
$businessId: UUID!
|
|
$dateFrom: Timestamp
|
|
$dateTo: Timestamp
|
|
$offset: Int
|
|
$limit: Int
|
|
) @auth(level: USER) {
|
|
shifts(
|
|
where: {
|
|
order: { businessId: { eq: $businessId } }
|
|
date: { ge: $dateFrom, le: $dateTo }
|
|
}
|
|
offset: $offset
|
|
limit: $limit
|
|
) {
|
|
id
|
|
title
|
|
|
|
orderId
|
|
|
|
date
|
|
startTime
|
|
endTime
|
|
hours
|
|
cost
|
|
|
|
location
|
|
locationAddress
|
|
latitude
|
|
longitude
|
|
placeId
|
|
city
|
|
state
|
|
street
|
|
country
|
|
description
|
|
|
|
status
|
|
workersNeeded
|
|
filled
|
|
filledAt
|
|
|
|
managers
|
|
durationDays
|
|
|
|
createdAt
|
|
updatedAt
|
|
createdBy
|
|
|
|
order {
|
|
id
|
|
eventName
|
|
status
|
|
orderType
|
|
businessId
|
|
vendorId
|
|
business { id businessName email contactName }
|
|
vendor { id companyName }
|
|
}
|
|
}
|
|
}
|
|
|
|
# ------------------------------------------------------------
|
|
# VENDOR: GET SHIFTS FOR A VENDOR (via order.vendorId)
|
|
# ------------------------------------------------------------
|
|
query getShiftsByVendorId(
|
|
$vendorId: UUID!
|
|
$dateFrom: Timestamp
|
|
$dateTo: Timestamp
|
|
$offset: Int
|
|
$limit: Int
|
|
) @auth(level: USER) {
|
|
shifts(
|
|
where: {
|
|
order: { vendorId: { eq: $vendorId } }
|
|
date: { ge: $dateFrom, le: $dateTo }
|
|
}
|
|
offset: $offset
|
|
limit: $limit
|
|
) {
|
|
id
|
|
title
|
|
|
|
orderId
|
|
|
|
date
|
|
startTime
|
|
endTime
|
|
hours
|
|
cost
|
|
|
|
location
|
|
locationAddress
|
|
latitude
|
|
longitude
|
|
placeId
|
|
city
|
|
state
|
|
street
|
|
country
|
|
description
|
|
|
|
status
|
|
workersNeeded
|
|
filled
|
|
filledAt
|
|
|
|
managers
|
|
durationDays
|
|
|
|
createdAt
|
|
updatedAt
|
|
createdBy
|
|
|
|
order {
|
|
id
|
|
eventName
|
|
status
|
|
orderType
|
|
businessId
|
|
vendorId
|
|
business { id businessName email contactName }
|
|
vendor { id companyName }
|
|
}
|
|
}
|
|
}
|