Files
Krow-workspace/backend/dataconnect/connector/shiftDayCompletion/mutations.gql

130 lines
3.2 KiB
GraphQL

# ------------------------------------------------------------
# CREATE — called automatically at the end of each shift day
# ------------------------------------------------------------
mutation createShiftDayCompletion(
$shiftId: UUID!
$orderId: UUID!
$businessId: UUID!
$vendorId: UUID!
$dayDate: Timestamp!
$dayNumber: Int!
$hours: Float
$cost: Float
$staffSummary: Any
$createdBy: String
) @auth(level: USER) {
shiftDayCompletion_insert(
data: {
shiftId: $shiftId
orderId: $orderId
businessId: $businessId
vendorId: $vendorId
dayDate: $dayDate
dayNumber: $dayNumber
status: PENDING_REVIEW
hours: $hours
cost: $cost
staffSummary: $staffSummary
createdBy: $createdBy
}
)
}
# ------------------------------------------------------------
# APPROVE — client approves a daily completion record
# ------------------------------------------------------------
mutation approveShiftDayCompletion(
$id: UUID!
$reviewedBy: String!
$reviewedAt: Timestamp!
) @auth(level: USER) {
shiftDayCompletion_update(
id: $id
data: {
status: APPROVED
reviewedBy: $reviewedBy
reviewedAt: $reviewedAt
}
)
}
# ------------------------------------------------------------
# DISPUTE — client disputes a daily completion record
# ------------------------------------------------------------
mutation disputeShiftDayCompletion(
$id: UUID!
$reviewedBy: String!
$reviewedAt: Timestamp!
$disputeReason: String!
$disputeDetails: String
$disputedItems: Any
) @auth(level: USER) {
shiftDayCompletion_update(
id: $id
data: {
status: DISPUTED
reviewedBy: $reviewedBy
reviewedAt: $reviewedAt
disputeReason: $disputeReason
disputeDetails: $disputeDetails
disputedItems: $disputedItems
}
)
}
# ------------------------------------------------------------
# LINK INVOICE — set once invoice is generated after full approval
# ------------------------------------------------------------
mutation linkInvoiceToShiftDayCompletion(
$id: UUID!
$invoiceId: UUID!
) @auth(level: USER) {
shiftDayCompletion_update(
id: $id
data: {
invoiceId: $invoiceId
}
)
}
# ------------------------------------------------------------
# UPDATE — general-purpose update (admin use)
# ------------------------------------------------------------
mutation updateShiftDayCompletion(
$id: UUID!
$status: ShiftDayCompletionStatus
$hours: Float
$cost: Float
$staffSummary: Any
$disputeReason: String
$disputeDetails: String
$disputedItems: Any
$reviewedBy: String
$reviewedAt: Timestamp
$invoiceId: UUID
) @auth(level: USER) {
shiftDayCompletion_update(
id: $id
data: {
status: $status
hours: $hours
cost: $cost
staffSummary: $staffSummary
disputeReason: $disputeReason
disputeDetails: $disputeDetails
disputedItems: $disputedItems
reviewedBy: $reviewedBy
reviewedAt: $reviewedAt
invoiceId: $invoiceId
}
)
}
# ------------------------------------------------------------
# DELETE
# ------------------------------------------------------------
mutation deleteShiftDayCompletion($id: UUID!) @auth(level: USER) {
shiftDayCompletion_delete(id: $id)
}