130 lines
3.2 KiB
GraphQL
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)
|
|
}
|