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 }) }