diff --git a/dataconnect/connector/assignment/mutations.gql b/dataconnect/connector/assignment/mutations.gql new file mode 100644 index 00000000..b91cb417 --- /dev/null +++ b/dataconnect/connector/assignment/mutations.gql @@ -0,0 +1,51 @@ +mutation CreateAssignment( + $assignmentNumber: String, + $orderId: UUID!, + $workforceId: UUID!, + $vendorId: UUID!, + $role: String!, + $assignmentStatus: AssignmentStatus!, + $scheduledStart: Timestamp! +) @auth(level: USER) { + assignment_insert( + data: { + assignmentNumber: $assignmentNumber + orderId: $orderId + workforceId: $workforceId + vendorId: $vendorId + role: $role + assignmentStatus: $assignmentStatus + scheduledStart: $scheduledStart + } + ) +} + +mutation UpdateAssignment( + $id: UUID!, + $assignmentNumber: String, + $orderId: UUID, + $workforceId: UUID, + $vendorId: UUID, + $role: String, + $assignmentStatus: AssignmentStatus, + $scheduledStart: Timestamp +) @auth(level: USER) { + assignment_update( + id: $id, + data: { + assignmentNumber: $assignmentNumber + orderId: $orderId + workforceId: $workforceId + vendorId: $vendorId + role: $role + assignmentStatus: $assignmentStatus + scheduledStart: $scheduledStart + } + ) +} + +mutation DeleteAssignment( + $id: UUID! +) @auth(level: USER) { + assignment_delete(id: $id) +} diff --git a/dataconnect/connector/assignment/queries.gql b/dataconnect/connector/assignment/queries.gql new file mode 100644 index 00000000..06c16ba4 --- /dev/null +++ b/dataconnect/connector/assignment/queries.gql @@ -0,0 +1,56 @@ +# dataconnect/connector/assignment/queries.gql + +query listAssignment @auth(level: USER) { + assignments { + id + assignmentNumber + orderId + workforceId + vendorId + role + assignmentStatus + scheduledStart + } +} + +query getAssignmentById( + $id: UUID! +) @auth(level: USER) { + assignment(id: $id) { + id + assignmentNumber + orderId + workforceId + vendorId + role + assignmentStatus + scheduledStart + } +} + +query filterAssignment( + $assignmentNumber: String, + $orderId: UUID, + $workforceId: UUID, + $vendorId: UUID, + $assignmentStatus: AssignmentStatus +) @auth(level: USER) { + assignments( + where: { + assignmentNumber: { eq: $assignmentNumber } + orderId: { eq: $orderId } + workforceId: { eq: $workforceId } + vendorId: { eq: $vendorId } + assignmentStatus: { eq: $assignmentStatus } + } + ) { + id + assignmentNumber + orderId + workforceId + vendorId + role + assignmentStatus + scheduledStart + } +} diff --git a/dataconnect/schema/assignment.gql b/dataconnect/schema/assignment.gql new file mode 100644 index 00000000..0f791604 --- /dev/null +++ b/dataconnect/schema/assignment.gql @@ -0,0 +1,23 @@ +enum AssignmentStatus { + PENDING + CONFIRMED + CHECKED_IN + IN_PROGRESS + COMPLETED + CANCELLED + NO_SHOW +} + +type Assignment @table(name: "assignments") { + id: UUID! @default(expr: "uuidV4()") + assignmentNumber: String + orderId: UUID! # order_id (FK lógica a Order.id) + workforceId: UUID! # workforce_id (FK lógica a Workforce.id) + vendorId: UUID! # vendor_id (FK lógica a Vendor.id) + role: String! + assignmentStatus: AssignmentStatus! + scheduledStart: Timestamp! + createdDate: Timestamp @default(expr: "request.time") + updatedDate: Timestamp @default(expr: "request.time") + createdBy: String @default(expr: "auth.uid") +}