Files
2026-03-18 15:04:18 +01:00

82 lines
2.0 KiB
GraphQL

mutation createStaffDocument(
$staffId: UUID!
$staffName: String!
$documentId: UUID!
$status: DocumentStatus!
$documentUrl: String
$expiryDate: Timestamp
) @auth(level: USER) {
staffDocument_insert(
data: {
staffId: $staffId
staffName: $staffName
documentId: $documentId
status: $status
documentUrl: $documentUrl
expiryDate: $expiryDate
}
)
}
mutation updateStaffDocument(
$staffId: UUID!
$documentId: UUID!
$status: DocumentStatus
$documentUrl: String
$expiryDate: Timestamp
) @auth(level: USER) {
staffDocument_update(
key: { staffId: $staffId, documentId: $documentId }
data: {
status: $status
documentUrl: $documentUrl
expiryDate: $expiryDate
}
)
}
# ------------------------------------------------------------
# UPSERT STAFF DOCUMENT
# Creates the document record if it does not exist, or updates
# it if it already exists (matched by staffId + documentId key).
# Use this when uploading a document for the first time or
# re-uploading/updating an existing one.
#
# To update multiple documents in a single network call, use
# aliased mutations in one GraphQL request from the client:
#
# mutation {
# doc1: upsertStaffDocument(staffId: $id, staffName: $name, documentId: $d1, ...)
# doc2: upsertStaffDocument(staffId: $id, staffName: $name, documentId: $d2, ...)
# }
# ------------------------------------------------------------
mutation upsertStaffDocument(
$staffId: UUID!
$staffName: String!
$documentId: UUID!
$status: DocumentStatus!
$documentUrl: String
$expiryDate: Timestamp
$verificationId: String
) @auth(level: USER) {
staffDocument_upsert(
data: {
staffId: $staffId
staffName: $staffName
documentId: $documentId
status: $status
documentUrl: $documentUrl
expiryDate: $expiryDate
verificationId: $verificationId
}
)
}
mutation deleteStaffDocument(
$staffId: UUID!
$documentId: UUID!
) @auth(level: USER) {
staffDocument_delete(key: { staffId: $staffId, documentId: $documentId })
}