diff --git a/dataconnect/connector/certification/mutations.gql b/dataconnect/connector/certification/mutations.gql new file mode 100644 index 00000000..b38f5296 --- /dev/null +++ b/dataconnect/connector/certification/mutations.gql @@ -0,0 +1,47 @@ +mutation CreateCertification( + $employeeName: String!, + $certificationName: String!, + $certificationType: CertificationType, + $status: CertificationStatus, + $expiryDate: String!, + $validationStatus: CertificationValidationStatus +) @auth(level: USER) { + certification_insert( + data: { + employeeName: $employeeName + certificationName: $certificationName + certificationType: $certificationType + status: $status + expiryDate: $expiryDate + validationStatus: $validationStatus + } + ) +} + +mutation UpdateCertification( + $id: UUID!, + $employeeName: String, + $certificationName: String, + $certificationType: CertificationType, + $status: CertificationStatus, + $expiryDate: String, + $validationStatus: CertificationValidationStatus +) @auth(level: USER) { + certification_update( + id: $id, + data: { + employeeName: $employeeName + certificationName: $certificationName + certificationType: $certificationType + status: $status + expiryDate: $expiryDate + validationStatus: $validationStatus + } + ) +} + +mutation DeleteCertification( + $id: UUID! +) @auth(level: USER) { + certification_delete(id: $id) +} diff --git a/dataconnect/connector/certification/queries.gql b/dataconnect/connector/certification/queries.gql new file mode 100644 index 00000000..888e6127 --- /dev/null +++ b/dataconnect/connector/certification/queries.gql @@ -0,0 +1,54 @@ +query listCertification @auth(level: USER) { + certifications { + id + employeeName + certificationName + certificationType + status + expiryDate + validationStatus + } +} + +query getCertificationById( + $id: UUID! +) @auth(level: USER) { + certification(id: $id) { + id + employeeName + certificationName + certificationType + status + expiryDate + validationStatus + createdDate + updatedDate + createdBy + } +} + +query filterCertification( + $employeeName: String, + $certificationName: String, + $certificationType: CertificationType, + $status: CertificationStatus, + $validationStatus: CertificationValidationStatus +) @auth(level: USER) { + certifications( + where: { + employeeName: { eq: $employeeName } + certificationName: { eq: $certificationName } + certificationType: { eq: $certificationType } + status: { eq: $status } + validationStatus: { eq: $validationStatus } + } + ) { + id + employeeName + certificationName + certificationType + status + expiryDate + validationStatus + } +} diff --git a/dataconnect/schema/certification.gql b/dataconnect/schema/certification.gql new file mode 100644 index 00000000..b755ffc1 --- /dev/null +++ b/dataconnect/schema/certification.gql @@ -0,0 +1,37 @@ +enum CertificationType { + LEGAL + OPERATIONAL + SAFETY + TRAINING + LICENSE + OTHER +} + +enum CertificationStatus { + CURRENT + EXPIRING_SOON + EXPIRED + PENDING_VALIDATION +} + +enum CertificationValidationStatus { + APPROVED + PENDING_EXPERT_REVIEW + REJECTED + AI_VERIFIED + AI_FLAGGED + MANUAL_REVIEW_NEEDED +} + +type Certification @table(name: "certification") { + id: UUID! @default(expr: "uuidV4()") + employeeName: String! + certificationName: String! + certificationType: CertificationType + status: CertificationStatus + expiryDate: String! + validationStatus: CertificationValidationStatus + createdDate: Timestamp @default(expr: "request.time") + updatedDate: Timestamp @default(expr: "request.time") + createdBy: String @default(expr: "auth.uid") +}