chore(legacy): relocate v1 dataconnect source
This commit is contained in:
278
legacy/dataconnect-v1/connector/assignment/queries.gql
Normal file
278
legacy/dataconnect-v1/connector/assignment/queries.gql
Normal file
@@ -0,0 +1,278 @@
|
||||
# ------------------------------------------------------------
|
||||
# LIST ALL ASSIGNMENTS (admin/debug)
|
||||
# ------------------------------------------------------------
|
||||
query listAssignments(
|
||||
$offset: Int
|
||||
$limit: Int
|
||||
) @auth(level: USER) {
|
||||
assignments(offset: $offset, limit: $limit) {
|
||||
id
|
||||
title
|
||||
status
|
||||
createdAt
|
||||
|
||||
workforce {
|
||||
id
|
||||
workforceNumber
|
||||
staff { id fullName }
|
||||
}
|
||||
|
||||
shiftRole {
|
||||
id
|
||||
count
|
||||
assigned
|
||||
startTime
|
||||
endTime
|
||||
hours
|
||||
totalValue
|
||||
role { id name costPerHour }
|
||||
|
||||
shift {
|
||||
id
|
||||
title
|
||||
date
|
||||
location
|
||||
locationAddress
|
||||
latitude
|
||||
longitude
|
||||
status
|
||||
|
||||
order {
|
||||
id
|
||||
eventName
|
||||
business { id businessName email contactName }
|
||||
vendor { id companyName }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# GET ASSIGNMENT BY ID
|
||||
# ------------------------------------------------------------
|
||||
query getAssignmentById($id: UUID!) @auth(level: USER) {
|
||||
assignment(id: $id) {
|
||||
id
|
||||
title
|
||||
description
|
||||
instructions
|
||||
status
|
||||
tipsAvailable
|
||||
travelTime
|
||||
mealProvided
|
||||
parkingAvailable
|
||||
gasCompensation
|
||||
managers
|
||||
createdAt
|
||||
updatedAt
|
||||
createdBy
|
||||
|
||||
workforce {
|
||||
id
|
||||
workforceNumber
|
||||
status
|
||||
staff { id fullName }
|
||||
}
|
||||
|
||||
shiftRole {
|
||||
id
|
||||
startTime
|
||||
endTime
|
||||
hours
|
||||
totalValue
|
||||
breakType
|
||||
uniform
|
||||
department
|
||||
role { id name costPerHour }
|
||||
|
||||
shift {
|
||||
id
|
||||
title
|
||||
date
|
||||
location
|
||||
locationAddress
|
||||
latitude
|
||||
longitude
|
||||
status
|
||||
managers
|
||||
|
||||
order {
|
||||
id
|
||||
eventName
|
||||
orderType
|
||||
business { id businessName email contactName }
|
||||
vendor { id companyName }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# MY ASSIGNMENTS (by workforceId) - Staff view
|
||||
# ------------------------------------------------------------
|
||||
query listAssignmentsByWorkforceId(
|
||||
$workforceId: UUID!
|
||||
$offset: Int
|
||||
$limit: Int
|
||||
) @auth(level: USER) {
|
||||
assignments(
|
||||
where: { workforceId: { eq: $workforceId } }
|
||||
offset: $offset
|
||||
limit: $limit
|
||||
orderBy: { createdAt: DESC }
|
||||
) {
|
||||
id
|
||||
title
|
||||
status
|
||||
createdAt
|
||||
|
||||
workforce {
|
||||
id
|
||||
workforceNumber
|
||||
staff { id fullName }
|
||||
}
|
||||
|
||||
shiftRole {
|
||||
id
|
||||
startTime
|
||||
endTime
|
||||
hours
|
||||
totalValue
|
||||
role { id name costPerHour }
|
||||
|
||||
shift {
|
||||
id
|
||||
title
|
||||
date
|
||||
location
|
||||
status
|
||||
|
||||
order {
|
||||
id
|
||||
eventName
|
||||
business { id businessName }
|
||||
vendor { id companyName }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# ASSIGNMENTS FOR A VENDOR (Vendor dashboard)
|
||||
# Approach: filter by workforce.vendorId (relation)
|
||||
# If Data Connect can't filter nested, use 2-step:
|
||||
# 1) listWorkforceByVendorId => workforce ids
|
||||
# 2) assignments(where: { workforceId: { in: [...] } })
|
||||
# ------------------------------------------------------------
|
||||
query listAssignmentsByWorkforceIds(
|
||||
$workforceIds: [UUID!]!
|
||||
$offset: Int
|
||||
$limit: Int
|
||||
) @auth(level: USER) {
|
||||
assignments(
|
||||
where: { workforceId: { in: $workforceIds } }
|
||||
offset: $offset
|
||||
limit: $limit
|
||||
orderBy: { createdAt: DESC }
|
||||
) {
|
||||
id
|
||||
title
|
||||
status
|
||||
createdAt
|
||||
|
||||
workforce { id workforceNumber staff { id fullName } }
|
||||
|
||||
shiftRole {
|
||||
id
|
||||
role { id name }
|
||||
shift {
|
||||
id
|
||||
title
|
||||
date
|
||||
order {
|
||||
id
|
||||
eventName
|
||||
business { id businessName }
|
||||
vendor { id companyName }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# ASSIGNMENTS BY SHIFT ROLE (useful for staffing)
|
||||
# ------------------------------------------------------------
|
||||
query listAssignmentsByShiftRole(
|
||||
$shiftId: UUID!
|
||||
$roleId: UUID!
|
||||
$offset: Int
|
||||
$limit: Int
|
||||
) @auth(level: USER) {
|
||||
assignments(
|
||||
where: {
|
||||
shiftId: { eq: $shiftId }
|
||||
roleId: { eq: $roleId }
|
||||
}
|
||||
offset: $offset
|
||||
limit: $limit
|
||||
) {
|
||||
id
|
||||
title
|
||||
status
|
||||
createdAt
|
||||
workforce { id workforceNumber staff { id fullName } }
|
||||
}
|
||||
}
|
||||
|
||||
# ------------------------------------------------------------
|
||||
|
||||
# FILTER ASSIGNMENTS (status + date range)
|
||||
# Date range is based on Shift.date through the relation (NOT filterable directly).
|
||||
#
|
||||
# Since ShiftRole uses a composite key (shiftId + roleId),
|
||||
# Assignments must be filtered using BOTH fields.
|
||||
#
|
||||
# So the filtering flow is:
|
||||
# 1) Get Shifts in the date range => shiftIds
|
||||
# 2) Get ShiftRoles where shiftId IN shiftIds => (shiftId, roleId) pairs
|
||||
# 3) Get Assignments where:
|
||||
# - shiftId matches
|
||||
# - roleId matches
|
||||
# - status matches (optional)
|
||||
#
|
||||
# This query represents step 3.
|
||||
# ------------------------------------------------------------
|
||||
query filterAssignments(
|
||||
$shiftIds: [UUID!]!
|
||||
$roleIds: [UUID!]!
|
||||
$status: AssignmentStatus
|
||||
$offset: Int
|
||||
$limit: Int
|
||||
) @auth(level: USER) {
|
||||
assignments(
|
||||
where: {
|
||||
shiftId: { in: $shiftIds }
|
||||
roleId: { in: $roleIds }
|
||||
status: { eq: $status }
|
||||
}
|
||||
offset: $offset
|
||||
limit: $limit
|
||||
) {
|
||||
id
|
||||
title
|
||||
status
|
||||
createdAt
|
||||
|
||||
workforce { id workforceNumber staff { id fullName } }
|
||||
|
||||
shiftRole {
|
||||
id
|
||||
role { id name }
|
||||
shift { id title date location status }
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user