import { gql } from "@apollo/client"; export const QUERY_ALL_ACTIVE_APPOINTMENTS = gql` query QUERY_ALL_ACTIVE_APPOINTMENTS( $start: timestamptz! $end: timestamptz! ) { appointments( where: { canceled: { _eq: false } end: { _lte: $end } start: { _gte: $start } } ) { start id end arrived title isintake block color note job { alt_transport ro_number ownr_ln ownr_co_nm ownr_fn ownr_ph1 ownr_ea clm_total id clm_no ins_co_nm v_model_yr v_make_desc v_model_desc labhrs: joblines_aggregate( where: { mod_lbr_ty: { _neq: "LAR" }, removed: { _eq: false } } ) { aggregate { sum { mod_lb_hrs } } } larhrs: joblines_aggregate( where: { mod_lbr_ty: { _eq: "LAR" }, removed: { _eq: false } } ) { aggregate { sum { mod_lb_hrs } } } } } } `; export const INSERT_APPOINTMENT_BLOCK = gql` mutation INSERT_APPOINTMENT_BLOCK($app: [appointments_insert_input!]!) { insert_appointments(objects: $app) { returning { id start end arrived title isintake block note } } } `; export const INSERT_APPOINTMENT = gql` mutation INSERT_APPOINTMENT( $app: [appointments_insert_input!]! $jobId: uuid $altTransport: String ) { insert_appointments(objects: $app) { returning { id start end arrived title isintake block color note } } update_jobs( where: { id: { _eq: $jobId } } _set: { alt_transport: $altTransport } ) { returning { id alt_transport } } } `; export const QUERY_APPOINTMENT_BY_DATE = gql` query QUERY_APPOINTMENT_BY_DATE($start: timestamptz, $end: timestamptz) { appointments( where: { start: { _lte: $end, _gte: $start }, canceled: { _eq: false } } ) { start id end title isintake block color note job { alt_transport ro_number ownr_ln ownr_fn ownr_ph1 ownr_ea clm_total id clm_no vehicle { id v_model_yr v_make_desc v_model_desc } labhrs: joblines_aggregate( where: { mod_lbr_ty: { _neq: "LAR" }, removed: { _eq: false } } ) { aggregate { sum { mod_lb_hrs } } } larhrs: joblines_aggregate( where: { mod_lbr_ty: { _eq: "LAR" }, removed: { _eq: false } } ) { aggregate { sum { mod_lb_hrs } } } } } } `; export const UPDATE_APPOINTMENT = gql` mutation UPDATE_APPOINTMENT($appid: uuid!, $app: appointments_set_input) { update_appointments(where: { id: { _eq: $appid } }, _set: $app) { returning { id start id end arrived title isintake block color note } } } `; export const CANCEL_APPOINTMENT_BY_ID = gql` mutation CANCEL_APPOINTMENT_BY_ID($appid: uuid!) { update_appointments( where: { id: { _eq: $appid } } _set: { canceled: true } ) { returning { id canceled } } } `; export const QUERY_APPOINTMENTS_BY_JOBID = gql` query QUERY_APPOINTMENTS_BY_JOBID($jobid: uuid!) { appointments(where: { jobid: { _eq: $jobid } }) { start id end isintake arrived canceled created_at block note } } `; export const QUERY_SCHEDULE_LOAD_DATA = gql` query QUERY_SCHEDULE_LOAD_DATA($start: timestamptz!, $end: timestamptz!) { prodJobs: jobs(where: { inproduction: { _eq: true } }) { id labhrs: joblines_aggregate( where: { mod_lbr_ty: { _neq: "LAR" }, removed: { _eq: false } } ) { aggregate { sum { mod_lb_hrs } } } larhrs: joblines_aggregate( where: { mod_lbr_ty: { _eq: "LAR" }, removed: { _eq: false } } ) { aggregate { sum { mod_lb_hrs } } } } compJobs: jobs( where: { scheduled_completion: { _gte: $start, _lte: $end } } ) { id ro_number scheduled_completion labhrs: joblines_aggregate( where: { mod_lbr_ty: { _neq: "LAR" }, removed: { _eq: false } } ) { aggregate { sum { mod_lb_hrs } } } larhrs: joblines_aggregate( where: { mod_lbr_ty: { _eq: "LAR" }, removed: { _eq: false } } ) { aggregate { sum { mod_lb_hrs } } } } arrJobs: jobs(where: { scheduled_in: { _gte: $start, _lte: $end } }) { id scheduled_in ro_number labhrs: joblines_aggregate( where: { mod_lbr_ty: { _neq: "LAR" }, removed: { _eq: false } } ) { aggregate { sum { mod_lb_hrs } } } larhrs: joblines_aggregate( where: { mod_lbr_ty: { _eq: "LAR" }, removed: { _eq: false } } ) { aggregate { sum { mod_lb_hrs } } } } } `; export const MARK_LATEST_APPOINTMENT_AS_ARRIVED = gql` mutation MARK_LATEST_APPOINTMENT_AS_ARRIVED($appointmentId: uuid!) { update_appointments( where: { id: { _eq: $appointmentId } } _set: { arrived: true } ) { affected_rows returning { id arrived } } } `;