Files
Krow-workspace/backend/dataconnect/connector/shiftRole/queries.gql
José Salazar 6277b9f5e2 changes
2026-02-01 22:39:40 +09:00

543 lines
8.0 KiB
GraphQL

query getShiftRoleById(
$shiftId: UUID!
$roleId: UUID!
) @auth(level: USER) {
shiftRole(key: { shiftId: $shiftId, roleId: $roleId }) {
id
shiftId
roleId
count
assigned
startTime
endTime
hours
department
uniform
breakType
totalValue
createdAt
role {
id
name
costPerHour
}
shift{
location
locationAddress
description
orderId
order{
recurringDays
permanentDays
notes
business{
id
businessName
companyLogoUrl
}
vendor{
id
companyName
}
teamHub{
hubName
}
}
}
}
}
query listShiftRolesByShiftId(
$shiftId: UUID!
$offset: Int
$limit: Int
) @auth(level: USER) {
shiftRoles(
where: { shiftId: { eq: $shiftId } }
offset: $offset
limit: $limit
) {
id
shiftId
roleId
count
assigned
startTime
endTime
hours
department
uniform
breakType
totalValue
createdAt
role {
id
name
costPerHour
}
shift{
location
locationAddress
description
orderId
order{
recurringDays
permanentDays
notes
business{
id
businessName
}
vendor{
id
companyName
}
}
}
}
}
query listShiftRolesByRoleId(
$roleId: UUID!
$offset: Int
$limit: Int
) @auth(level: USER) {
shiftRoles(
where: { roleId: { eq: $roleId } }
offset: $offset
limit: $limit
) {
id
shiftId
roleId
count
assigned
startTime
endTime
hours
department
uniform
breakType
totalValue
createdAt
role {
id
name
costPerHour
}
shift{
location
locationAddress
description
orderId
order{
recurringDays
permanentDays
notes
business{
id
businessName
}
vendor{
id
companyName
}
}
}
}
}
query listShiftRolesByShiftIdAndTimeRange(
$shiftId: UUID!
$start: Timestamp!
$end: Timestamp!
$offset: Int
$limit: Int
) @auth(level: USER) {
shiftRoles(
where: {
shiftId: { eq: $shiftId }
startTime: { ge: $start }
endTime: { le: $end }
}
offset: $offset
limit: $limit
) {
id
shiftId
roleId
count
assigned
startTime
endTime
hours
department
uniform
breakType
totalValue
createdAt
role {
id
name
costPerHour
}
shift{
location
locationAddress
description
orderId
order{
recurringDays
permanentDays
notes
business{
id
businessName
}
vendor{
id
companyName
}
}
}
}
}
# ------------------------------------------------------------
# LIST SHIFT ROLES BY VENDOR (via Shift -> Order)
# ------------------------------------------------------------
query listShiftRolesByVendorId(
$vendorId: UUID!
$offset: Int
$limit: Int
) @auth(level: USER) {
shiftRoles(
where: {
shift: {
status: {in: [IN_PROGRESS, CONFIRMED, ASSIGNED, OPEN, PENDING]} #IN_PROGRESS? PENDING?
order: {
vendorId: { eq: $vendorId }
}
}
}
offset: $offset
limit: $limit
orderBy: { createdAt: DESC }
) {
id
shiftId
roleId
count
assigned
startTime
endTime
hours
department
uniform
breakType
totalValue
createdAt
role {
id
name
costPerHour
}
shift {
id
title
date
location
locationAddress
description
orderId
status
durationDays
order {
id
eventName
vendorId
businessId
orderType
status
date
recurringDays
permanentDays
notes
business { id businessName }
vendor { id companyName }
}
}
}
}
#orders view client
query listShiftRolesByBusinessAndDateRange(
$businessId: UUID!
$start: Timestamp!
$end: Timestamp!
$offset: Int
$limit: Int
$status: ShiftStatus
) @auth(level: USER) {
shiftRoles(
where: {
shift: {
date: { ge: $start, le: $end }
order: { businessId: { eq: $businessId } }
status: { eq: $status }
}
}
offset: $offset
limit: $limit
orderBy: { createdAt: DESC }
) {
shiftId
roleId
count
assigned
hours
startTime
endTime
totalValue
role { id name }
shift {
id
date
location
locationAddress
title
status
order { id eventName }
}
}
}
#list shiftsroles for update order in client app
query listShiftRolesByBusinessAndOrder(
$businessId: UUID!
$orderId: UUID!
$offset: Int
$limit: Int
) @auth(level: USER) {
shiftRoles(
where: {
shift: {
orderId: { eq: $orderId }
order: { businessId: { eq: $businessId } }
}
}
offset: $offset
limit: $limit
orderBy: { createdAt: DESC }
) {
id
shiftId
roleId
count
assigned
startTime
endTime
hours
breakType
totalValue
createdAt
role { id name costPerHour }
shift {
id
title
date
orderId
location
locationAddress
order{
vendorId
eventName
date
#location
teamHub {
address
placeId
hubName
}
}
}
}
}
#reorder get list by businessId
query listShiftRolesByBusinessDateRangeCompletedOrders(
$businessId: UUID!
$start: Timestamp!
$end: Timestamp!
$offset: Int
$limit: Int
) @auth(level: USER) {
shiftRoles(
where: {
shift: {
date: { ge: $start, le: $end }
order: {
businessId: { eq: $businessId }
status: { eq: COMPLETED }
}
}
}
offset: $offset
limit: $limit
orderBy: { createdAt: DESC }
) {
shiftId
roleId
count
assigned
hours
startTime
endTime
totalValue
role {
id
name
costPerHour
}
shift {
id
date
location
locationAddress
title
status
order {
id
orderType
}
}
}
}
#view for billing period
query listShiftRolesByBusinessAndDatesSummary(
$businessId: UUID!
$start: Timestamp!
$end: Timestamp!
$offset: Int
$limit: Int
) @auth(level: USER) {
shiftRoles(
where: {
shift: {
date: { ge: $start, le: $end }
status: { eq: COMPLETED }
order: { businessId: { eq: $businessId } }
}
}
offset: $offset
limit: $limit
orderBy: { createdAt: DESC }
) {
roleId
hours
totalValue
role { id name }
}
}
# ------------------------------------------------------------
# BUSINESS: GET COMPLETED SHIFTS FOR A BUSINESS (via order.businessId)
# ------------------------------------------------------------
#for spending insights in home view
query getCompletedShiftsByBusinessId(
$businessId: UUID!
$dateFrom: Timestamp!
$dateTo: Timestamp!
$offset: Int
$limit: Int
) @auth(level: USER) {
shifts(
where: {
order: { businessId: { eq: $businessId } }
status: {in: [IN_PROGRESS, CONFIRMED, COMPLETED, OPEN]}
date: { ge: $dateFrom, le: $dateTo }
}
offset: $offset
limit: $limit
) {
id
#title
#orderId
date
startTime
endTime
hours
cost
#location
#locationAddress
#latitude
#longitude
#description
#status
workersNeeded
filled
#filledAt
#managers
#durationDays
createdAt
order {
#id
#eventName
status
#orderType
#businessId
#vendorId
#business { id businessName email contactName }
#vendor { id companyName }
}
}
}