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