From 469f39a0ca09049cae583de6ba267e0b69a6e97d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Salazar?= <73718835+joshrs23@users.noreply.github.com> Date: Wed, 26 Nov 2025 16:16:11 -0500 Subject: [PATCH] new workforce entity --- dataconnect/connector/workforce/mutations.gql | 43 +++++++++++++++++ dataconnect/connector/workforce/queries.gql | 48 +++++++++++++++++++ dataconnect/schema/workforce.gql | 19 ++++++++ 3 files changed, 110 insertions(+) create mode 100644 dataconnect/connector/workforce/mutations.gql create mode 100644 dataconnect/connector/workforce/queries.gql create mode 100644 dataconnect/schema/workforce.gql diff --git a/dataconnect/connector/workforce/mutations.gql b/dataconnect/connector/workforce/mutations.gql new file mode 100644 index 00000000..5cf76640 --- /dev/null +++ b/dataconnect/connector/workforce/mutations.gql @@ -0,0 +1,43 @@ +mutation CreateWorkforce( + $workforceNumber: String!, + $vendorId: UUID!, + $firstName: String!, + $lastName: String!, + $employmentType: WorkforceEmploymentType +) @auth(level: USER) { + workforce_insert( + data: { + workforceNumber: $workforceNumber + vendorId: $vendorId + firstName: $firstName + lastName: $lastName + employmentType: $employmentType + } + ) +} + +mutation UpdateWorkforce( + $id: UUID!, + $workforceNumber: String, + $vendorId: UUID, + $firstName: String, + $lastName: String, + $employmentType: WorkforceEmploymentType +) @auth(level: USER) { + workforce_update( + id: $id, + data: { + workforceNumber: $workforceNumber + vendorId: $vendorId + firstName: $firstName + lastName: $lastName + employmentType: $employmentType + } + ) +} + +mutation DeleteWorkforce( + $id: UUID! +) @auth(level: USER) { + workforce_delete(id: $id) +} diff --git a/dataconnect/connector/workforce/queries.gql b/dataconnect/connector/workforce/queries.gql new file mode 100644 index 00000000..ee7e20ad --- /dev/null +++ b/dataconnect/connector/workforce/queries.gql @@ -0,0 +1,48 @@ +query listWorkforce @auth(level: USER) { + workforces { + id + workforceNumber + vendorId + firstName + lastName + employmentType + } +} + +query getWorkforceById( + $id: UUID! +) @auth(level: USER) { + workforce(id: $id) { + id + workforceNumber + vendorId + firstName + lastName + employmentType + } +} + +query filterWorkforce( + $workforceNumber: String, + $vendorId: UUID, + $firstName: String, + $lastName: String, + $employmentType: WorkforceEmploymentType +) @auth(level: USER) { + workforces( + where: { + workforceNumber: { eq: $workforceNumber } + vendorId: { eq: $vendorId } + firstName: { eq: $firstName } + lastName: { eq: $lastName } + employmentType: { eq: $employmentType } + } + ) { + id + workforceNumber + vendorId + firstName + lastName + employmentType + } +} diff --git a/dataconnect/schema/workforce.gql b/dataconnect/schema/workforce.gql new file mode 100644 index 00000000..4962aa92 --- /dev/null +++ b/dataconnect/schema/workforce.gql @@ -0,0 +1,19 @@ +# enums cant start by a number, reason of W1099 +enum WorkforceEmploymentType { + W2 + W1099 + TEMPORARY + CONTRACT +} + +type Workforce @table(name: "workforce") { + id: UUID! @default(expr: "uuidV4()") + workforceNumber: String! + vendorId: UUID! # vendor_id (FK lógica a Vendor.id) + firstName: String! + lastName: String! + employmentType: WorkforceEmploymentType # employment_type + createdDate: Timestamp @default(expr: "request.time") + updatedDate: Timestamp @default(expr: "request.time") + createdBy: String @default(expr: "auth.uid") +}