Files
bodyshop/client/src/graphql/tasks.queries.js
2025-07-09 11:14:04 -04:00

463 lines
9.3 KiB
JavaScript

import { gql } from "@apollo/client";
export const PARTIAL_TASK_FIELDS = gql`
fragment TaskFields on tasks {
id
created_at
updated_at
title
description
deleted
deleted_at
due_date
created_by
assigned_to
assigned_to_employee {
id
user_email
}
completed
completed_at
remind_at
priority
job {
id
ro_number
joblines {
id
line_desc
}
bills {
id
vendor {
name
}
invoice_number
}
parts_orders {
id
vendor {
name
}
order_number
}
}
jobid
jobline {
id
line_desc
}
joblineid
parts_order {
id
vendor {
name
}
order_number
}
partsorderid
bill {
id
vendor {
name
}
invoice_number
}
billid
}
`;
export const QUERY_GET_TASK_BY_ID = gql`
${PARTIAL_TASK_FIELDS}
query QUERY_GET_TASK_BY_ID($id: uuid!) {
tasks_by_pk(id: $id) {
...TaskFields
}
}
`;
export const QUERY_ALL_TASKS_PAGINATED = gql`
${PARTIAL_TASK_FIELDS}
query QUERY_ALL_TASKS_PAGINATED(
$offset: Int
$limit: Int
$bodyshop: uuid!
$deleted: Boolean
$completed: Boolean
$assigned_to: uuid
$order: [tasks_order_by!]!
) {
tasks(
offset: $offset
limit: $limit
order_by: $order
where: {
bodyshopid: { _eq: $bodyshop }
deleted: { _eq: $deleted }
assigned_to: { _eq: $assigned_to }
completed: { _eq: $completed }
}
) {
...TaskFields
}
tasks_aggregate(
where: {
bodyshopid: { _eq: $bodyshop }
deleted: { _eq: $deleted }
assigned_to: { _eq: $assigned_to }
completed: { _eq: $completed }
}
) {
aggregate {
count
}
}
}
`;
// Query for joblineid
export const QUERY_JOBLINE_TASKS_PAGINATED = gql`
${PARTIAL_TASK_FIELDS}
query QUERY_JOBLINE_TASKS_PAGINATED(
$offset: Int
$limit: Int
$joblineid: uuid!
$bodyshop: uuid!
$deleted: Boolean
$completed: Boolean
$assigned_to: uuid
$order: [tasks_order_by!]!
) {
tasks(
offset: $offset
limit: $limit
order_by: $order
where: {
joblineid: { _eq: $joblineid }
bodyshopid: { _eq: $bodyshop }
deleted: { _eq: $deleted }
assigned_to: { _eq: $assigned_to }
completed: { _eq: $completed }
}
) {
...TaskFields
}
tasks_aggregate(
where: {
joblineid: { _eq: $joblineid }
bodyshopid: { _eq: $bodyshop }
deleted: { _eq: $deleted }
assigned_to: { _eq: $assigned_to }
completed: { _eq: $completed }
}
) {
aggregate {
count
}
}
}
`;
// Query for partsorderid
export const QUERY_PARTSORDER_TASKS_PAGINATED = gql`
${PARTIAL_TASK_FIELDS}
query QUERY_PARTSORDER_TASKS_PAGINATED(
$offset: Int
$limit: Int
$partsorderid: uuid!
$bodyshop: uuid!
$deleted: Boolean
$completed: Boolean
$assigned_to: uuid
$order: [tasks_order_by!]!
) {
tasks(
offset: $offset
limit: $limit
order_by: $order
where: {
partsorderid: { _eq: $partsorderid }
bodyshopid: { _eq: $bodyshop }
deleted: { _eq: $deleted }
assigned_to: { _eq: $assigned_to }
completed: { _eq: $completed }
}
) {
...TaskFields
}
tasks_aggregate(
where: {
partsorderid: { _eq: $partsorderid }
bodyshopid: { _eq: $bodyshop }
deleted: { _eq: $deleted }
assigned_to: { _eq: $assigned_to }
completed: { _eq: $completed }
}
) {
aggregate {
count
}
}
}
`;
// Query for billid
export const QUERY_BILL_TASKS_PAGINATED = gql`
${PARTIAL_TASK_FIELDS}
query QUERY_BILL_TASKS_PAGINATED(
$offset: Int
$limit: Int
$billid: uuid!
$bodyshop: uuid!
$deleted: Boolean
$completed: Boolean
$assigned_to: uuid
$order: [tasks_order_by!]!
) {
tasks(
offset: $offset
limit: $limit
order_by: $order
where: {
billid: { _eq: $billid }
bodyshopid: { _eq: $bodyshop }
deleted: { _eq: $deleted }
assigned_to: { _eq: $assigned_to }
completed: { _eq: $completed }
}
) {
...TaskFields
}
tasks_aggregate(
where: {
billid: { _eq: $billid }
bodyshopid: { _eq: $bodyshop }
deleted: { _eq: $deleted }
assigned_to: { _eq: $assigned_to }
completed: { _eq: $completed }
}
) {
aggregate {
count
}
}
}
`;
// Use the fragment in your queries
export const QUERY_JOB_TASKS_PAGINATED = gql`
${PARTIAL_TASK_FIELDS}
query QUERY_JOB_TASKS_PAGINATED(
$offset: Int
$limit: Int
$jobid: uuid!
$bodyshop: uuid!
$deleted: Boolean
$completed: Boolean
$assigned_to: uuid
$order: [tasks_order_by!]!
) {
tasks(
offset: $offset
limit: $limit
order_by: $order
where: {
jobid: { _eq: $jobid }
bodyshopid: { _eq: $bodyshop }
deleted: { _eq: $deleted }
assigned_to: { _eq: $assigned_to }
completed: { _eq: $completed }
}
) {
...TaskFields
}
tasks_aggregate(
where: {
jobid: { _eq: $jobid }
bodyshopid: { _eq: $bodyshop }
deleted: { _eq: $deleted }
assigned_to: { _eq: $assigned_to }
completed: { _eq: $completed }
}
) {
aggregate {
count
}
}
}
`;
export const QUERY_MY_COMPLETE_TASKS_PAGINATED = gql`
${PARTIAL_TASK_FIELDS}
query QUERY_MY_TASKS_PAGINATED(
$offset: Int
$limit: Int
$assigned_to: uuid!
$bodyshop: uuid!
$where: tasks_bool_exp
$order: [tasks_order_by!]!
) {
tasks(offset: $offset, limit: $limit, order_by: $order, where: $where) {
...TaskFields
}
tasks_aggregate(where: $where) {
aggregate {
count
}
}
}
`;
export const QUERY_MY_ACTIVE_TASKS_PAGINATED = gql`
${PARTIAL_TASK_FIELDS}
query QUERY_MY_ACTIVE_TASKS_PAGINATED(
$assigned_to: uuid!
$bodyshop: uuid!
$offset: Int
$limit: Int
$order: [tasks_order_by!]!
) {
tasks(
offset: $offset
limit: $limit
order_by: $order
where: {
assigned_to: { _eq: $assigned_to }
bodyshopid: { _eq: $bodyshop }
deleted: { _eq: false }
completed: { _eq: false }
}
) {
...TaskFields
}
tasks_aggregate(
where: {
assigned_to: { _eq: $assigned_to }
bodyshopid: { _eq: $bodyshop }
deleted: { _eq: false }
completed: { _eq: false }
}
) {
aggregate {
count
}
}
}
`;
export const QUERY_MY_TASKS_PAGINATED = gql`
${PARTIAL_TASK_FIELDS}
query QUERY_MY_TASKS_PAGINATED(
$offset: Int
$limit: Int
$assigned_to: uuid!
$bodyshop: uuid!
$deleted: Boolean
$completed: Boolean
$order: [tasks_order_by!]!
) {
tasks(
offset: $offset
limit: $limit
order_by: $order
where: {
assigned_to: { _eq: $assigned_to }
bodyshopid: { _eq: $bodyshop }
deleted: { _eq: $deleted }
completed: { _eq: $completed }
}
) {
...TaskFields
}
tasks_aggregate(
where: {
assigned_to: { _eq: $assigned_to }
bodyshopid: { _eq: $bodyshop }
deleted: { _eq: $deleted }
completed: { _eq: $completed }
}
) {
aggregate {
count
}
}
}
`;
/**
* Toggle task completed mutation
* @type {DocumentNode}
*/
export const MUTATION_TOGGLE_TASK_COMPLETED = gql`
${PARTIAL_TASK_FIELDS}
mutation MUTATION_TOGGLE_TASK_COMPLETED($id: uuid!, $completed: Boolean!, $completed_at: timestamptz) {
update_tasks_by_pk(pk_columns: { id: $id }, _set: { completed: $completed, completed_at: $completed_at }) {
...TaskFields
}
}
`;
/**
* Toggle task deleted mutation
* @type {DocumentNode}
*/
export const MUTATION_TOGGLE_TASK_DELETED = gql`
${PARTIAL_TASK_FIELDS}
mutation MUTATION_TOGGLE_TASK_DELETED($id: uuid!, $deleted: Boolean!, $deleted_at: timestamptz) {
update_tasks_by_pk(pk_columns: { id: $id }, _set: { deleted: $deleted, deleted_at: $deleted_at }) {
...TaskFields
}
}
`;
/**
* Insert new task mutation
* @type {DocumentNode}
*/
export const MUTATION_INSERT_NEW_TASK = gql`
${PARTIAL_TASK_FIELDS}
mutation MUTATION_INSERT_NEW_TASK($taskInput: [tasks_insert_input!]!) {
insert_tasks(objects: $taskInput) {
returning {
...TaskFields
}
}
}
`;
/**
* Update task mutation
* @type {DocumentNode}
*/
export const MUTATION_UPDATE_TASK = gql`
${PARTIAL_TASK_FIELDS}
mutation MUTATION_UPDATE_TASK($taskId: uuid!, $task: tasks_set_input!) {
update_tasks(where: { id: { _eq: $taskId } }, _set: $task) {
returning {
...TaskFields
}
}
}
`;
/**
* Query to get the count of my tasks
* @type {DocumentNode}
*/
export const QUERY_MY_TASKS_COUNT = gql`
query QUERY_MY_TASKS_COUNT($assigned_to: uuid!, $bodyshopid: uuid!) {
tasks_aggregate(
where: {
assigned_to: { _eq: $assigned_to }
bodyshopid: { _eq: $bodyshopid }
completed: { _eq: false }
deleted: { _eq: false }
}
) {
aggregate {
count
}
}
}
`;