diff --git a/bodyshop_translations.babel b/bodyshop_translations.babel index f264b41e4..a8e589448 100644 --- a/bodyshop_translations.babel +++ b/bodyshop_translations.babel @@ -793,6 +793,27 @@ + + adjustment_bottom_line + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + claim_total false @@ -1025,7 +1046,49 @@ - deductible + ded_amt + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + ded_status + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + depreciation_taxes false @@ -1192,6 +1255,27 @@ + + federal_tax_payable + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + ins_addr1 false @@ -1444,6 +1528,27 @@ + + other_amount_payable + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + owner false @@ -1906,6 +2011,48 @@ + + storage_payable + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + towing_payable + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + unitnumber false diff --git a/client/src/components/form-items-formatted/email-form-item.component.jsx b/client/src/components/form-items-formatted/email-form-item.component.jsx index bc5ec25a2..bb51094ca 100644 --- a/client/src/components/form-items-formatted/email-form-item.component.jsx +++ b/client/src/components/form-items-formatted/email-form-item.component.jsx @@ -6,7 +6,7 @@ function FormItemEmail(props, ref) { {...props} addonAfter={ - + } /> diff --git a/client/src/components/jobs-detail-financial/jobs-detail-financial.component.jsx b/client/src/components/jobs-detail-financial/jobs-detail-financial.component.jsx new file mode 100644 index 000000000..7954b133e --- /dev/null +++ b/client/src/components/jobs-detail-financial/jobs-detail-financial.component.jsx @@ -0,0 +1,57 @@ +import { Form, Input, InputNumber } from "antd"; +import React, { useContext } from "react"; +import { useTranslation } from "react-i18next"; +import JobDetailFormContext from "../../pages/jobs-detail/jobs-detail.page.context"; + +export default function JobsDetailFinancials({ job }) { + const form = useContext(JobDetailFormContext); + const { getFieldDecorator } = form; + const { t } = useTranslation(); + + return ( +
+ + {getFieldDecorator("ded_amt", { + initialValue: job.ded_amt + })()} + + + {getFieldDecorator("ded_status", { + initialValue: job.ded_status + })()} + + + {getFieldDecorator("depreciation_taxes", { + initialValue: job.depreciation_taxes + })()} + + TODO: This is equivalent of GST payable. + + {getFieldDecorator("federal_tax_payable", { + initialValue: job.federal_tax_payable + })()} + + TODO: equivalent of other customer amount + + {getFieldDecorator("other_amount_payable", { + initialValue: job.other_amount_payable + })()} + + + {getFieldDecorator("towing_payable", { + initialValue: job.towing_payable + })()} + + + {getFieldDecorator("storage_payable", { + initialValue: job.storage_payable + })()} + + + {getFieldDecorator("adjustment_bottom_line", { + initialValue: job.adjustment_bottom_line + })()} + +
+ ); +} diff --git a/client/src/components/jobs-detail-insurance/jobs-detail-insurance.component.jsx b/client/src/components/jobs-detail-insurance/jobs-detail-insurance.component.jsx index e2efa2b04..f0178d6f1 100644 --- a/client/src/components/jobs-detail-insurance/jobs-detail-insurance.component.jsx +++ b/client/src/components/jobs-detail-insurance/jobs-detail-insurance.component.jsx @@ -1,41 +1,45 @@ -import { Divider, Form, Input } from "antd"; +import { Divider, Form, Input, DatePicker } from "antd"; import React, { useContext } from "react"; import { useTranslation } from "react-i18next"; import JobDetailFormContext from "../../pages/jobs-detail/jobs-detail.page.context"; import FormItemEmail from "../form-items-formatted/email-form-item.component"; import FormItemPhone from "../form-items-formatted/phone-form-item.component"; +import moment from "moment"; + export default function JobsDetailInsurance({ job }) { const form = useContext(JobDetailFormContext); const { getFieldDecorator, getFieldValue } = form; const { t } = useTranslation(); + console.log("job.loss_date", job.loss_date); + return (
{getFieldDecorator("ins_co_id", { initialValue: job.ins_co_id - })()} + })()} {getFieldDecorator("policy_no", { initialValue: job.policy_no - })()} + })()} {getFieldDecorator("clm_no", { initialValue: job.clm_no - })()} + })()} {getFieldDecorator("regie_number", { initialValue: job.regie_number - })()} + })()} TODO: missing KOL field??? {getFieldDecorator("loss_date", { - initialValue: job.loss_date - })()} + initialValue: job.loss_date ? moment(job.loss_date) : null + })()} DAMAGE {JSON.stringify(job.area_of_damage)} CAA # seems not correct based on field mapping Class seems not correct @@ -43,32 +47,32 @@ export default function JobsDetailInsurance({ job }) { {getFieldDecorator("ins_co_nm", { initialValue: job.ins_co_nm - })()} + })()} {getFieldDecorator("ins_addr1", { initialValue: job.ins_addr1 - })()} + })()} {getFieldDecorator("ins_city", { initialValue: job.ins_city - })()} + })()} {getFieldDecorator("ins_ct_ln", { initialValue: job.ins_ct_ln - })()} + })()} {getFieldDecorator("ins_ct_fn", { initialValue: job.ins_ct_fn - })()} + })()} {getFieldDecorator("ins_ph1", { initialValue: job.ins_ph1 - })()} + })()} {getFieldDecorator("ins_ea", { @@ -79,35 +83,35 @@ export default function JobsDetailInsurance({ job }) { message: "This is not a valid email address." } ] - })()} + })()} Appraiser Info {getFieldDecorator("est_co_nm", { initialValue: job.est_co_nm - })()} + })()} {getFieldDecorator("est_ct_fn", { initialValue: job.est_ct_fn - })()} + })()} {getFieldDecorator("est_ct_ln", { initialValue: job.est_ct_ln - })()} + })()} TODO: Field is pay date but title is inspection date. Likely incorrect? {getFieldDecorator("pay_date", { initialValue: job.pay_date - })()} + })()} {getFieldDecorator("est_ph1", { initialValue: job.est_ph1 - })()} + })()} {getFieldDecorator("est_ea", { @@ -118,27 +122,27 @@ export default function JobsDetailInsurance({ job }) { message: "This is not a valid email address." } ] - })()} + })()} {getFieldDecorator("selling_dealer", { initialValue: job.selling_dealer - })()} + })()} {getFieldDecorator("servicing_dealer", { initialValue: job.servicing_dealer - })()} + })()} {getFieldDecorator("selling_dealer_contact", { initialValue: job.selling_dealer_contact - })()} + })()} {getFieldDecorator("servicing_dealer_contact", { initialValue: job.servicing_dealer_contact - })()} + })()} TODO: Adding servicing/selling dealer contact info?
diff --git a/client/src/graphql/jobs.queries.js b/client/src/graphql/jobs.queries.js index 671cfc52d..6fe497459 100644 --- a/client/src/graphql/jobs.queries.js +++ b/client/src/graphql/jobs.queries.js @@ -144,6 +144,14 @@ export const GET_JOB_BY_PK = gql` regie_number scheduled_completion id + ded_amt + ded_status + depreciation_taxes + federal_tax_payable + other_amount_payable + towing_payable + storage_payable + adjustment_bottom_line } } `; diff --git a/client/src/pages/jobs-detail/jobs-detail.page.component.jsx b/client/src/pages/jobs-detail/jobs-detail.page.component.jsx index 512f5b130..7f7c27aa7 100644 --- a/client/src/pages/jobs-detail/jobs-detail.page.component.jsx +++ b/client/src/pages/jobs-detail/jobs-detail.page.component.jsx @@ -1,20 +1,20 @@ -import { Form, Icon, Tabs, Alert, Button } from "antd"; +import { Alert, Button, Form, Icon, Tabs } from "antd"; import React, { useContext } from "react"; import { useTranslation } from "react-i18next"; import { + FaHardHat, FaInfo, FaRegStickyNote, - FaShieldAlt, - FaHardHat + FaShieldAlt } from "react-icons/fa"; import JobLinesContainer from "../../components/job-lines/job-lines.container.component"; import JobsDetailClaims from "../../components/jobs-detail-claims/jobs-detail-claims.component"; +import JobsDetailFinancials from "../../components/jobs-detail-financial/jobs-detail-financial.component"; import JobsDetailHeader from "../../components/jobs-detail-header/jobs-detail-header.component"; +import JobsDetailInsurance from "../../components/jobs-detail-insurance/jobs-detail-insurance.component"; import JobsDocumentsContainer from "../../components/jobs-documents/jobs-documents.container"; import JobNotesContainer from "../../components/jobs-notes/jobs-notes.container"; -import JobsRatesContainer from "../../components/jobs-rates/jobs-rates.container"; import JobDetailFormContext from "./jobs-detail.page.context"; -import JobsDetailInsurance from "../../components/jobs-detail-insurance/jobs-detail-insurance.component"; export default function JobsDetailPage({ job, @@ -60,7 +60,7 @@ export default function JobsDetailPage({ /> ) : null} - + @@ -68,7 +68,8 @@ export default function JobsDetailPage({ {t("menus.jobsdetail.claimdetail")} } - key='claimdetail'> + key="claimdetail" + > @@ -79,40 +80,44 @@ export default function JobsDetailPage({ {t("menus.jobsdetail.insurance")} } - key='insurance'> + key="insurance" + > - + {t("menus.jobsdetail.repairdata")} } - key='repairdata'> + key="repairdata" + > - + {t("menus.jobsdetail.financials")} } - key='financials'> - + key="financials" + > + - + {t("menus.jobsdetail.partssublet")} } - key='partssublet'> + key="partssublet" + > Partssublet @@ -123,29 +128,32 @@ export default function JobsDetailPage({ {t("menus.jobsdetail.labor")} } - key='labor'> + key="labor" + > Labor - + {t("menus.jobsdetail.dates")} } - key='dates'> + key="dates" + > Dates - + {t("jobs.labels.documents")} } - key='#documents'> + key="#documents" + > } - key='#notes'> + key="#notes" + > diff --git a/client/src/translations/en_us/common.json b/client/src/translations/en_us/common.json index f9dc807f0..7684ebab6 100644 --- a/client/src/translations/en_us/common.json +++ b/client/src/translations/en_us/common.json @@ -58,6 +58,7 @@ "actual_completion": "Actual Completion", "actual_delivery": "Actual Delivery", "actual_in": "Actual In", + "adjustment_bottom_line": "Adjustments", "claim_total": "Claim Total", "clm_no": "Claim #", "clm_total": "Claim Total", @@ -69,7 +70,9 @@ "date_invoiced": "Invoiced", "date_open": "Open", "date_scheduled": "Scheduled", - "deductible": "Deductible", + "ded_amt": "Deductible", + "ded_status": "Deductible Status", + "depreciation_taxes": "Depreciation/Taxes", "est_addr1": "Appraiser Address", "est_co_nm": "Appraiser", "est_ct_fn": "Appraiser First Name", @@ -77,6 +80,7 @@ "est_ea": "Appraiser Email", "est_number": "Estimate Number", "est_ph1": "Appraiser Phone #", + "federal_tax_payable": "Federal Tax Payable", "ins_addr1": "Insurance Co. Address", "ins_city": "Insurance City", "ins_co_id": "Insurance Co. ID", @@ -89,6 +93,7 @@ "kmout": "Mileage Out", "loss_date": "Loss Date", "loss_desc": "Loss of Use", + "other_amount_payable": "Other Amount Payable", "owner": "Owner", "owner_owing": "Cust. Owes", "ownr_ea": "Email", @@ -111,6 +116,8 @@ "servicing_dealer_contact": "Servicing Dealer Contact", "specialcoveragepolicy": "Special Coverage Policy", "status": "Job Status", + "storage_payable": "Storage/PVRT", + "towing_payable": "Towing Payable", "unitnumber": "Unit #", "vehicle": "Vehicle" }, diff --git a/client/src/translations/es/common.json b/client/src/translations/es/common.json index 591a0e96c..a3583f1cc 100644 --- a/client/src/translations/es/common.json +++ b/client/src/translations/es/common.json @@ -58,6 +58,7 @@ "actual_completion": "Realización real", "actual_delivery": "Entrega real", "actual_in": "Real en", + "adjustment_bottom_line": "Ajustes", "claim_total": "Reclamar total", "clm_no": "Reclamación #", "clm_total": "Reclamar total", @@ -69,7 +70,9 @@ "date_invoiced": "Facturado", "date_open": "Abierto", "date_scheduled": "Programado", - "deductible": "Deducible", + "ded_amt": "Deducible", + "ded_status": "Estado deducible", + "depreciation_taxes": "Depreciación / Impuestos", "est_addr1": "Dirección del tasador", "est_co_nm": "Tasador", "est_ct_fn": "Nombre del tasador", @@ -77,6 +80,7 @@ "est_ea": "Correo electrónico del tasador", "est_number": "Numero Estimado", "est_ph1": "Número de teléfono del tasador", + "federal_tax_payable": "Impuesto federal por pagar", "ins_addr1": "Dirección de Insurance Co.", "ins_city": "Ciudad de seguros", "ins_co_id": "ID de la compañía de seguros", @@ -89,6 +93,7 @@ "kmout": "Kilometraje", "loss_date": "Fecha de pérdida", "loss_desc": "Perdida de uso", + "other_amount_payable": "Otra cantidad a pagar", "owner": "Propietario", "owner_owing": "Cust. Debe", "ownr_ea": "Email", @@ -111,6 +116,8 @@ "servicing_dealer_contact": "Servicio Contacto con el concesionario", "specialcoveragepolicy": "Política de cobertura especial", "status": "Estado del trabajo", + "storage_payable": "Almacenamiento / PVRT", + "towing_payable": "Remolque a pagar", "unitnumber": "Unidad #", "vehicle": "Vehículo" }, diff --git a/client/src/translations/fr/common.json b/client/src/translations/fr/common.json index abef528be..1dc6386ef 100644 --- a/client/src/translations/fr/common.json +++ b/client/src/translations/fr/common.json @@ -58,6 +58,7 @@ "actual_completion": "Achèvement réel", "actual_delivery": "Livraison réelle", "actual_in": "En réel", + "adjustment_bottom_line": "Ajustements", "claim_total": "Total réclamation", "clm_no": "Prétendre #", "clm_total": "Total réclamation", @@ -69,7 +70,9 @@ "date_invoiced": "Facturé", "date_open": "Ouvrir", "date_scheduled": "Prévu", - "deductible": "Déductible", + "ded_amt": "Déductible", + "ded_status": "Statut de franchise", + "depreciation_taxes": "Amortissement / taxes", "est_addr1": "Adresse de l'évaluateur", "est_co_nm": "Expert", "est_ct_fn": "Prénom de l'évaluateur", @@ -77,6 +80,7 @@ "est_ea": "Courriel de l'évaluateur", "est_number": "Numéro d'estimation", "est_ph1": "Numéro de téléphone de l'évaluateur", + "federal_tax_payable": "Impôt fédéral à payer", "ins_addr1": "Adresse Insurance Co.", "ins_city": "Insurance City", "ins_co_id": "ID de la compagnie d'assurance", @@ -89,6 +93,7 @@ "kmout": "Kilométrage hors", "loss_date": "Date de perte", "loss_desc": "Perte d'usage", + "other_amount_payable": "Autre montant à payer", "owner": "Propriétaire", "owner_owing": "Cust. Owes", "ownr_ea": "Email", @@ -111,6 +116,8 @@ "servicing_dealer_contact": "Contacter le concessionnaire", "specialcoveragepolicy": "Politique de couverture spéciale", "status": "Statut de l'emploi", + "storage_payable": "Stockage / PVRT", + "towing_payable": "Remorquage à payer", "unitnumber": "Unité #", "vehicle": "Véhicule" }, diff --git a/hasura/migrations/1580234610526_alter_table_public_jobs_add_column_depreciation_taxes/down.yaml b/hasura/migrations/1580234610526_alter_table_public_jobs_add_column_depreciation_taxes/down.yaml new file mode 100644 index 000000000..08fb99f41 --- /dev/null +++ b/hasura/migrations/1580234610526_alter_table_public_jobs_add_column_depreciation_taxes/down.yaml @@ -0,0 +1,3 @@ +- args: + sql: ALTER TABLE "public"."jobs" DROP COLUMN "depreciation_taxes"; + type: run_sql diff --git a/hasura/migrations/1580234610526_alter_table_public_jobs_add_column_depreciation_taxes/up.yaml b/hasura/migrations/1580234610526_alter_table_public_jobs_add_column_depreciation_taxes/up.yaml new file mode 100644 index 000000000..e0634fb56 --- /dev/null +++ b/hasura/migrations/1580234610526_alter_table_public_jobs_add_column_depreciation_taxes/up.yaml @@ -0,0 +1,3 @@ +- args: + sql: ALTER TABLE "public"."jobs" ADD COLUMN "depreciation_taxes" numeric NULL; + type: run_sql diff --git a/hasura/migrations/1580234707152_alter_table_public_jobs_add_column_federal_tax_payable/down.yaml b/hasura/migrations/1580234707152_alter_table_public_jobs_add_column_federal_tax_payable/down.yaml new file mode 100644 index 000000000..b08e631f0 --- /dev/null +++ b/hasura/migrations/1580234707152_alter_table_public_jobs_add_column_federal_tax_payable/down.yaml @@ -0,0 +1,3 @@ +- args: + sql: ALTER TABLE "public"."jobs" DROP COLUMN "federal_tax_payable"; + type: run_sql diff --git a/hasura/migrations/1580234707152_alter_table_public_jobs_add_column_federal_tax_payable/up.yaml b/hasura/migrations/1580234707152_alter_table_public_jobs_add_column_federal_tax_payable/up.yaml new file mode 100644 index 000000000..4bf0b1169 --- /dev/null +++ b/hasura/migrations/1580234707152_alter_table_public_jobs_add_column_federal_tax_payable/up.yaml @@ -0,0 +1,3 @@ +- args: + sql: ALTER TABLE "public"."jobs" ADD COLUMN "federal_tax_payable" numeric NULL; + type: run_sql diff --git a/hasura/migrations/1580234855137_alter_table_public_jobs_add_column_other_amount_payable/down.yaml b/hasura/migrations/1580234855137_alter_table_public_jobs_add_column_other_amount_payable/down.yaml new file mode 100644 index 000000000..bd93bd65b --- /dev/null +++ b/hasura/migrations/1580234855137_alter_table_public_jobs_add_column_other_amount_payable/down.yaml @@ -0,0 +1,3 @@ +- args: + sql: ALTER TABLE "public"."jobs" DROP COLUMN "other_amount_payable"; + type: run_sql diff --git a/hasura/migrations/1580234855137_alter_table_public_jobs_add_column_other_amount_payable/up.yaml b/hasura/migrations/1580234855137_alter_table_public_jobs_add_column_other_amount_payable/up.yaml new file mode 100644 index 000000000..79fbefe5e --- /dev/null +++ b/hasura/migrations/1580234855137_alter_table_public_jobs_add_column_other_amount_payable/up.yaml @@ -0,0 +1,3 @@ +- args: + sql: ALTER TABLE "public"."jobs" ADD COLUMN "other_amount_payable" numeric NULL; + type: run_sql diff --git a/hasura/migrations/1580234979673_alter_table_public_jobs_add_column_towing_payable/down.yaml b/hasura/migrations/1580234979673_alter_table_public_jobs_add_column_towing_payable/down.yaml new file mode 100644 index 000000000..40dbf56ef --- /dev/null +++ b/hasura/migrations/1580234979673_alter_table_public_jobs_add_column_towing_payable/down.yaml @@ -0,0 +1,3 @@ +- args: + sql: ALTER TABLE "public"."jobs" DROP COLUMN "towing_payable"; + type: run_sql diff --git a/hasura/migrations/1580234979673_alter_table_public_jobs_add_column_towing_payable/up.yaml b/hasura/migrations/1580234979673_alter_table_public_jobs_add_column_towing_payable/up.yaml new file mode 100644 index 000000000..24ad092ee --- /dev/null +++ b/hasura/migrations/1580234979673_alter_table_public_jobs_add_column_towing_payable/up.yaml @@ -0,0 +1,3 @@ +- args: + sql: ALTER TABLE "public"."jobs" ADD COLUMN "towing_payable" numeric NULL; + type: run_sql diff --git a/hasura/migrations/1580235041688_alter_table_public_jobs_add_column_storage_payable/down.yaml b/hasura/migrations/1580235041688_alter_table_public_jobs_add_column_storage_payable/down.yaml new file mode 100644 index 000000000..24442e42a --- /dev/null +++ b/hasura/migrations/1580235041688_alter_table_public_jobs_add_column_storage_payable/down.yaml @@ -0,0 +1,3 @@ +- args: + sql: ALTER TABLE "public"."jobs" DROP COLUMN "storage_payable"; + type: run_sql diff --git a/hasura/migrations/1580235041688_alter_table_public_jobs_add_column_storage_payable/up.yaml b/hasura/migrations/1580235041688_alter_table_public_jobs_add_column_storage_payable/up.yaml new file mode 100644 index 000000000..83ba72114 --- /dev/null +++ b/hasura/migrations/1580235041688_alter_table_public_jobs_add_column_storage_payable/up.yaml @@ -0,0 +1,3 @@ +- args: + sql: ALTER TABLE "public"."jobs" ADD COLUMN "storage_payable" numeric NULL; + type: run_sql diff --git a/hasura/migrations/1580235377213_alter_table_public_jobs_add_column_adjustment_bottom_line/down.yaml b/hasura/migrations/1580235377213_alter_table_public_jobs_add_column_adjustment_bottom_line/down.yaml new file mode 100644 index 000000000..49bcbac38 --- /dev/null +++ b/hasura/migrations/1580235377213_alter_table_public_jobs_add_column_adjustment_bottom_line/down.yaml @@ -0,0 +1,3 @@ +- args: + sql: ALTER TABLE "public"."jobs" DROP COLUMN "adjustment_bottom_line"; + type: run_sql diff --git a/hasura/migrations/1580235377213_alter_table_public_jobs_add_column_adjustment_bottom_line/up.yaml b/hasura/migrations/1580235377213_alter_table_public_jobs_add_column_adjustment_bottom_line/up.yaml new file mode 100644 index 000000000..47c4a7336 --- /dev/null +++ b/hasura/migrations/1580235377213_alter_table_public_jobs_add_column_adjustment_bottom_line/up.yaml @@ -0,0 +1,3 @@ +- args: + sql: ALTER TABLE "public"."jobs" ADD COLUMN "adjustment_bottom_line" numeric NULL; + type: run_sql diff --git a/hasura/migrations/1580235459628_update_permission_user_public_table_jobs/down.yaml b/hasura/migrations/1580235459628_update_permission_user_public_table_jobs/down.yaml new file mode 100644 index 000000000..4d3bff160 --- /dev/null +++ b/hasura/migrations/1580235459628_update_permission_user_public_table_jobs/down.yaml @@ -0,0 +1,224 @@ +- args: + role: user + table: + name: jobs + schema: public + type: drop_insert_permission +- args: + permission: + check: + bodyshop: + associations: + _and: + - user: + authid: + _eq: X-Hasura-User-Id + - active: + _eq: true + columns: + - id + - created_at + - updated_at + - shopid + - ro_number + - ownerid + - vehicleid + - labor_rate_id + - labor_rate_desc + - rate_lab + - rate_lad + - rate_lae + - rate_lar + - rate_las + - rate_laf + - rate_lam + - rate_lag + - rate_atp + - rate_lau + - rate_la1 + - rate_la2 + - rate_la3 + - rate_la4 + - rate_mapa + - rate_mash + - rate_mahw + - rate_ma2s + - rate_ma3s + - rate_ma2t + - rate_mabl + - rate_macs + - rate_matd + - federal_tax_rate + - state_tax_rate + - local_tax_rate + - est_co_nm + - est_addr1 + - est_addr2 + - est_city + - est_st + - est_zip + - est_ctry + - est_ph1 + - est_ea + - est_ct_ln + - est_ct_fn + - scheduled_in + - actual_in + - scheduled_completion + - actual_completion + - scheduled_delivery + - actual_delivery + - regie_number + - invoice_date + - claim_total + - deductible + - inproduction + - statusid + - ins_co_id + - ins_co_nm + - ins_addr1 + - ins_addr2 + - ins_city + - ins_st + - ins_zip + - ins_ctry + - ins_ph1 + - ins_ph1x + - ins_ph2 + - ins_ph2x + - ins_fax + - ins_faxx + - ins_ct_ln + - ins_ct_fn + - ins_title + - ins_ct_ph + - ins_ct_phx + - ins_ea + - ins_memo + - policy_no + - ded_amt + - ded_status + - asgn_no + - asgn_date + - asgn_type + - clm_no + - clm_ofc_id + - date_estimated + - date_open + - date_scheduled + - date_invoiced + - date_closed + - date_exported + - clm_total + - owner_owing + - converted + - ciecaid + - loss_date + - clm_ofc_nm + - clm_addr1 + - clm_addr2 + - clm_city + - clm_st + - clm_zip + - clm_ctry + - clm_ph1 + - clm_ph1x + - clm_ph2 + - clm_ph2x + - clm_fax + - clm_faxx + - clm_ct_ln + - clm_ct_fn + - clm_title + - clm_ct_ph + - clm_ct_phx + - clm_ea + - payee_nms + - pay_type + - pay_date + - pay_chknm + - pay_amt + - agt_co_id + - agt_co_nm + - agt_addr1 + - agt_addr2 + - agt_city + - agt_st + - agt_zip + - agt_ctry + - agt_ph1 + - agt_ph1x + - agt_ph2 + - agt_ph2x + - agt_fax + - agt_faxx + - agt_ct_ln + - agt_ct_fn + - agt_ct_ph + - agt_ct_phx + - agt_ea + - agt_lic_no + - loss_type + - loss_desc + - theft_ind + - cat_no + - tlos_ind + - cust_pr + - insd_ln + - insd_fn + - insd_title + - insd_co_nm + - insd_addr1 + - insd_addr2 + - insd_city + - insd_st + - insd_zip + - insd_ctry + - insd_ph1 + - insd_ph1x + - insd_ph2 + - insd_ph2x + - insd_fax + - insd_faxx + - insd_ea + - ownr_ln + - ownr_fn + - ownr_title + - ownr_co_nm + - ownr_addr1 + - ownr_addr2 + - ownr_city + - ownr_st + - ownr_zip + - ownr_ctry + - ownr_ph1 + - ownr_ph1x + - ownr_ph2 + - ownr_ph2x + - ownr_fax + - ownr_faxx + - ownr_ea + - area_of_damage + - loss_cat + - est_number + - service_car + - special_coverage_policy + - csr + - po_number + - unit_number + - kmin + - kmout + - referral_source + - selling_dealer + - servicing_dealer + - servicing_dealer_contact + - selling_dealer_contact + localPresets: + - key: "" + value: "" + set: {} + role: user + table: + name: jobs + schema: public + type: create_insert_permission diff --git a/hasura/migrations/1580235459628_update_permission_user_public_table_jobs/up.yaml b/hasura/migrations/1580235459628_update_permission_user_public_table_jobs/up.yaml new file mode 100644 index 000000000..a0210b669 --- /dev/null +++ b/hasura/migrations/1580235459628_update_permission_user_public_table_jobs/up.yaml @@ -0,0 +1,230 @@ +- args: + role: user + table: + name: jobs + schema: public + type: drop_insert_permission +- args: + permission: + check: + bodyshop: + associations: + _and: + - user: + authid: + _eq: X-Hasura-User-Id + - active: + _eq: true + columns: + - id + - created_at + - updated_at + - shopid + - ro_number + - ownerid + - vehicleid + - labor_rate_id + - labor_rate_desc + - rate_lab + - rate_lad + - rate_lae + - rate_lar + - rate_las + - rate_laf + - rate_lam + - rate_lag + - rate_atp + - rate_lau + - rate_la1 + - rate_la2 + - rate_la3 + - rate_la4 + - rate_mapa + - rate_mash + - rate_mahw + - rate_ma2s + - rate_ma3s + - rate_ma2t + - rate_mabl + - rate_macs + - rate_matd + - federal_tax_rate + - state_tax_rate + - local_tax_rate + - est_co_nm + - est_addr1 + - est_addr2 + - est_city + - est_st + - est_zip + - est_ctry + - est_ph1 + - est_ea + - est_ct_ln + - est_ct_fn + - scheduled_in + - actual_in + - scheduled_completion + - actual_completion + - scheduled_delivery + - actual_delivery + - regie_number + - invoice_date + - claim_total + - deductible + - inproduction + - statusid + - ins_co_id + - ins_co_nm + - ins_addr1 + - ins_addr2 + - ins_city + - ins_st + - ins_zip + - ins_ctry + - ins_ph1 + - ins_ph1x + - ins_ph2 + - ins_ph2x + - ins_fax + - ins_faxx + - ins_ct_ln + - ins_ct_fn + - ins_title + - ins_ct_ph + - ins_ct_phx + - ins_ea + - ins_memo + - policy_no + - ded_amt + - ded_status + - asgn_no + - asgn_date + - asgn_type + - clm_no + - clm_ofc_id + - date_estimated + - date_open + - date_scheduled + - date_invoiced + - date_closed + - date_exported + - clm_total + - owner_owing + - converted + - ciecaid + - loss_date + - clm_ofc_nm + - clm_addr1 + - clm_addr2 + - clm_city + - clm_st + - clm_zip + - clm_ctry + - clm_ph1 + - clm_ph1x + - clm_ph2 + - clm_ph2x + - clm_fax + - clm_faxx + - clm_ct_ln + - clm_ct_fn + - clm_title + - clm_ct_ph + - clm_ct_phx + - clm_ea + - payee_nms + - pay_type + - pay_date + - pay_chknm + - pay_amt + - agt_co_id + - agt_co_nm + - agt_addr1 + - agt_addr2 + - agt_city + - agt_st + - agt_zip + - agt_ctry + - agt_ph1 + - agt_ph1x + - agt_ph2 + - agt_ph2x + - agt_fax + - agt_faxx + - agt_ct_ln + - agt_ct_fn + - agt_ct_ph + - agt_ct_phx + - agt_ea + - agt_lic_no + - loss_type + - loss_desc + - theft_ind + - cat_no + - tlos_ind + - cust_pr + - insd_ln + - insd_fn + - insd_title + - insd_co_nm + - insd_addr1 + - insd_addr2 + - insd_city + - insd_st + - insd_zip + - insd_ctry + - insd_ph1 + - insd_ph1x + - insd_ph2 + - insd_ph2x + - insd_fax + - insd_faxx + - insd_ea + - ownr_ln + - ownr_fn + - ownr_title + - ownr_co_nm + - ownr_addr1 + - ownr_addr2 + - ownr_city + - ownr_st + - ownr_zip + - ownr_ctry + - ownr_ph1 + - ownr_ph1x + - ownr_ph2 + - ownr_ph2x + - ownr_fax + - ownr_faxx + - ownr_ea + - area_of_damage + - loss_cat + - est_number + - service_car + - special_coverage_policy + - csr + - po_number + - unit_number + - kmin + - kmout + - referral_source + - selling_dealer + - servicing_dealer + - servicing_dealer_contact + - selling_dealer_contact + - depreciation_taxes + - federal_tax_payable + - other_amount_payable + - towing_payable + - storage_payable + - adjustment_bottom_line + localPresets: + - key: "" + value: "" + set: {} + role: user + table: + name: jobs + schema: public + type: create_insert_permission diff --git a/hasura/migrations/1580235465660_update_permission_user_public_table_jobs/down.yaml b/hasura/migrations/1580235465660_update_permission_user_public_table_jobs/down.yaml new file mode 100644 index 000000000..19316d585 --- /dev/null +++ b/hasura/migrations/1580235465660_update_permission_user_public_table_jobs/down.yaml @@ -0,0 +1,222 @@ +- args: + role: user + table: + name: jobs + schema: public + type: drop_select_permission +- args: + permission: + allow_aggregations: false + columns: + - converted + - inproduction + - special_coverage_policy + - asgn_date + - invoice_date + - loss_date + - pay_date + - kmin + - kmout + - est_number + - area_of_damage + - claim_total + - clm_total + - ded_amt + - deductible + - federal_tax_rate + - local_tax_rate + - owner_owing + - pay_amt + - rate_atp + - rate_la1 + - rate_la2 + - rate_la3 + - rate_la4 + - rate_lab + - rate_lad + - rate_lae + - rate_laf + - rate_lag + - rate_lam + - rate_lar + - rate_las + - rate_lau + - rate_ma2s + - rate_ma2t + - rate_ma3s + - rate_mabl + - rate_macs + - rate_mahw + - rate_mapa + - rate_mash + - rate_matd + - state_tax_rate + - agt_addr1 + - agt_addr2 + - agt_city + - agt_co_id + - agt_co_nm + - agt_ct_fn + - agt_ct_ln + - agt_ct_ph + - agt_ct_phx + - agt_ctry + - agt_ea + - agt_fax + - agt_faxx + - agt_lic_no + - agt_ph1 + - agt_ph1x + - agt_ph2 + - agt_ph2x + - agt_st + - agt_zip + - asgn_no + - asgn_type + - cat_no + - ciecaid + - clm_addr1 + - clm_addr2 + - clm_city + - clm_ct_fn + - clm_ct_ln + - clm_ct_ph + - clm_ct_phx + - clm_ctry + - clm_ea + - clm_fax + - clm_faxx + - clm_no + - clm_ofc_id + - clm_ofc_nm + - clm_ph1 + - clm_ph1x + - clm_ph2 + - clm_ph2x + - clm_st + - clm_title + - clm_zip + - csr + - cust_pr + - ded_status + - est_addr1 + - est_addr2 + - est_city + - est_co_nm + - est_ct_fn + - est_ct_ln + - est_ctry + - est_ea + - est_ph1 + - est_st + - est_zip + - ins_addr1 + - ins_addr2 + - ins_city + - ins_co_id + - ins_co_nm + - ins_ct_fn + - ins_ct_ln + - ins_ct_ph + - ins_ct_phx + - ins_ctry + - insd_addr1 + - insd_addr2 + - insd_city + - insd_co_nm + - insd_ctry + - insd_ea + - insd_fax + - insd_faxx + - insd_fn + - insd_ln + - insd_ph1 + - insd_ph1x + - insd_ph2 + - insd_ph2x + - insd_st + - insd_title + - insd_zip + - ins_ea + - ins_fax + - ins_faxx + - ins_memo + - ins_ph1 + - ins_ph1x + - ins_ph2 + - ins_ph2x + - ins_st + - ins_title + - ins_zip + - labor_rate_desc + - labor_rate_id + - loss_cat + - loss_desc + - loss_type + - ownr_addr1 + - ownr_addr2 + - ownr_city + - ownr_co_nm + - ownr_ctry + - ownr_ea + - ownr_fax + - ownr_faxx + - ownr_fn + - ownr_ln + - ownr_ph1 + - ownr_ph1x + - ownr_ph2 + - ownr_ph2x + - ownr_st + - ownr_title + - ownr_zip + - pay_chknm + - payee_nms + - pay_type + - policy_no + - po_number + - referral_source + - regie_number + - ro_number + - selling_dealer + - selling_dealer_contact + - service_car + - servicing_dealer + - servicing_dealer_contact + - theft_ind + - tlos_ind + - unit_number + - actual_completion + - actual_delivery + - actual_in + - created_at + - date_closed + - date_estimated + - date_exported + - date_invoiced + - date_open + - date_scheduled + - scheduled_completion + - scheduled_delivery + - scheduled_in + - updated_at + - id + - ownerid + - shopid + - statusid + - vehicleid + computed_fields: [] + filter: + bodyshop: + associations: + _and: + - user: + authid: + _eq: X-Hasura-User-Id + - active: + _eq: true + role: user + table: + name: jobs + schema: public + type: create_select_permission diff --git a/hasura/migrations/1580235465660_update_permission_user_public_table_jobs/up.yaml b/hasura/migrations/1580235465660_update_permission_user_public_table_jobs/up.yaml new file mode 100644 index 000000000..e18ccedb9 --- /dev/null +++ b/hasura/migrations/1580235465660_update_permission_user_public_table_jobs/up.yaml @@ -0,0 +1,228 @@ +- args: + role: user + table: + name: jobs + schema: public + type: drop_select_permission +- args: + permission: + allow_aggregations: false + columns: + - converted + - inproduction + - special_coverage_policy + - asgn_date + - invoice_date + - loss_date + - pay_date + - kmin + - kmout + - est_number + - area_of_damage + - adjustment_bottom_line + - claim_total + - clm_total + - ded_amt + - deductible + - depreciation_taxes + - federal_tax_payable + - federal_tax_rate + - local_tax_rate + - other_amount_payable + - owner_owing + - pay_amt + - rate_atp + - rate_la1 + - rate_la2 + - rate_la3 + - rate_la4 + - rate_lab + - rate_lad + - rate_lae + - rate_laf + - rate_lag + - rate_lam + - rate_lar + - rate_las + - rate_lau + - rate_ma2s + - rate_ma2t + - rate_ma3s + - rate_mabl + - rate_macs + - rate_mahw + - rate_mapa + - rate_mash + - rate_matd + - state_tax_rate + - storage_payable + - towing_payable + - agt_addr1 + - agt_addr2 + - agt_city + - agt_co_id + - agt_co_nm + - agt_ct_fn + - agt_ct_ln + - agt_ct_ph + - agt_ct_phx + - agt_ctry + - agt_ea + - agt_fax + - agt_faxx + - agt_lic_no + - agt_ph1 + - agt_ph1x + - agt_ph2 + - agt_ph2x + - agt_st + - agt_zip + - asgn_no + - asgn_type + - cat_no + - ciecaid + - clm_addr1 + - clm_addr2 + - clm_city + - clm_ct_fn + - clm_ct_ln + - clm_ct_ph + - clm_ct_phx + - clm_ctry + - clm_ea + - clm_fax + - clm_faxx + - clm_no + - clm_ofc_id + - clm_ofc_nm + - clm_ph1 + - clm_ph1x + - clm_ph2 + - clm_ph2x + - clm_st + - clm_title + - clm_zip + - csr + - cust_pr + - ded_status + - est_addr1 + - est_addr2 + - est_city + - est_co_nm + - est_ct_fn + - est_ct_ln + - est_ctry + - est_ea + - est_ph1 + - est_st + - est_zip + - ins_addr1 + - ins_addr2 + - ins_city + - ins_co_id + - ins_co_nm + - ins_ct_fn + - ins_ct_ln + - ins_ct_ph + - ins_ct_phx + - ins_ctry + - insd_addr1 + - insd_addr2 + - insd_city + - insd_co_nm + - insd_ctry + - insd_ea + - insd_fax + - insd_faxx + - insd_fn + - insd_ln + - insd_ph1 + - insd_ph1x + - insd_ph2 + - insd_ph2x + - insd_st + - insd_title + - insd_zip + - ins_ea + - ins_fax + - ins_faxx + - ins_memo + - ins_ph1 + - ins_ph1x + - ins_ph2 + - ins_ph2x + - ins_st + - ins_title + - ins_zip + - labor_rate_desc + - labor_rate_id + - loss_cat + - loss_desc + - loss_type + - ownr_addr1 + - ownr_addr2 + - ownr_city + - ownr_co_nm + - ownr_ctry + - ownr_ea + - ownr_fax + - ownr_faxx + - ownr_fn + - ownr_ln + - ownr_ph1 + - ownr_ph1x + - ownr_ph2 + - ownr_ph2x + - ownr_st + - ownr_title + - ownr_zip + - pay_chknm + - payee_nms + - pay_type + - policy_no + - po_number + - referral_source + - regie_number + - ro_number + - selling_dealer + - selling_dealer_contact + - service_car + - servicing_dealer + - servicing_dealer_contact + - theft_ind + - tlos_ind + - unit_number + - actual_completion + - actual_delivery + - actual_in + - created_at + - date_closed + - date_estimated + - date_exported + - date_invoiced + - date_open + - date_scheduled + - scheduled_completion + - scheduled_delivery + - scheduled_in + - updated_at + - id + - ownerid + - shopid + - statusid + - vehicleid + computed_fields: [] + filter: + bodyshop: + associations: + _and: + - user: + authid: + _eq: X-Hasura-User-Id + - active: + _eq: true + role: user + table: + name: jobs + schema: public + type: create_select_permission diff --git a/hasura/migrations/1580235470911_update_permission_user_public_table_jobs/down.yaml b/hasura/migrations/1580235470911_update_permission_user_public_table_jobs/down.yaml new file mode 100644 index 000000000..6b61f73a7 --- /dev/null +++ b/hasura/migrations/1580235470911_update_permission_user_public_table_jobs/down.yaml @@ -0,0 +1,224 @@ +- args: + role: user + table: + name: jobs + schema: public + type: drop_update_permission +- args: + permission: + columns: + - converted + - inproduction + - special_coverage_policy + - asgn_date + - invoice_date + - loss_date + - pay_date + - kmin + - kmout + - est_number + - area_of_damage + - claim_total + - clm_total + - ded_amt + - deductible + - federal_tax_rate + - local_tax_rate + - owner_owing + - pay_amt + - rate_atp + - rate_la1 + - rate_la2 + - rate_la3 + - rate_la4 + - rate_lab + - rate_lad + - rate_lae + - rate_laf + - rate_lag + - rate_lam + - rate_lar + - rate_las + - rate_lau + - rate_ma2s + - rate_ma2t + - rate_ma3s + - rate_mabl + - rate_macs + - rate_mahw + - rate_mapa + - rate_mash + - rate_matd + - state_tax_rate + - agt_addr1 + - agt_addr2 + - agt_city + - agt_co_id + - agt_co_nm + - agt_ct_fn + - agt_ct_ln + - agt_ct_ph + - agt_ct_phx + - agt_ctry + - agt_ea + - agt_fax + - agt_faxx + - agt_lic_no + - agt_ph1 + - agt_ph1x + - agt_ph2 + - agt_ph2x + - agt_st + - agt_zip + - asgn_no + - asgn_type + - cat_no + - ciecaid + - clm_addr1 + - clm_addr2 + - clm_city + - clm_ct_fn + - clm_ct_ln + - clm_ct_ph + - clm_ct_phx + - clm_ctry + - clm_ea + - clm_fax + - clm_faxx + - clm_no + - clm_ofc_id + - clm_ofc_nm + - clm_ph1 + - clm_ph1x + - clm_ph2 + - clm_ph2x + - clm_st + - clm_title + - clm_zip + - csr + - cust_pr + - ded_status + - est_addr1 + - est_addr2 + - est_city + - est_co_nm + - est_ct_fn + - est_ct_ln + - est_ctry + - est_ea + - est_ph1 + - est_st + - est_zip + - ins_addr1 + - ins_addr2 + - ins_city + - ins_co_id + - ins_co_nm + - ins_ct_fn + - ins_ct_ln + - ins_ct_ph + - ins_ct_phx + - ins_ctry + - insd_addr1 + - insd_addr2 + - insd_city + - insd_co_nm + - insd_ctry + - insd_ea + - insd_fax + - insd_faxx + - insd_fn + - insd_ln + - insd_ph1 + - insd_ph1x + - insd_ph2 + - insd_ph2x + - insd_st + - insd_title + - insd_zip + - ins_ea + - ins_fax + - ins_faxx + - ins_memo + - ins_ph1 + - ins_ph1x + - ins_ph2 + - ins_ph2x + - ins_st + - ins_title + - ins_zip + - labor_rate_desc + - labor_rate_id + - loss_cat + - loss_desc + - loss_type + - ownr_addr1 + - ownr_addr2 + - ownr_city + - ownr_co_nm + - ownr_ctry + - ownr_ea + - ownr_fax + - ownr_faxx + - ownr_fn + - ownr_ln + - ownr_ph1 + - ownr_ph1x + - ownr_ph2 + - ownr_ph2x + - ownr_st + - ownr_title + - ownr_zip + - pay_chknm + - payee_nms + - pay_type + - policy_no + - po_number + - referral_source + - regie_number + - ro_number + - selling_dealer + - selling_dealer_contact + - service_car + - servicing_dealer + - servicing_dealer_contact + - theft_ind + - tlos_ind + - unit_number + - actual_completion + - actual_delivery + - actual_in + - created_at + - date_closed + - date_estimated + - date_exported + - date_invoiced + - date_open + - date_scheduled + - scheduled_completion + - scheduled_delivery + - scheduled_in + - updated_at + - id + - ownerid + - shopid + - statusid + - vehicleid + filter: + bodyshop: + associations: + _and: + - user: + authid: + _eq: X-Hasura-User-Id + - active: + _eq: true + localPresets: + - key: "" + value: "" + set: {} + role: user + table: + name: jobs + schema: public + type: create_update_permission diff --git a/hasura/migrations/1580235470911_update_permission_user_public_table_jobs/up.yaml b/hasura/migrations/1580235470911_update_permission_user_public_table_jobs/up.yaml new file mode 100644 index 000000000..56280c418 --- /dev/null +++ b/hasura/migrations/1580235470911_update_permission_user_public_table_jobs/up.yaml @@ -0,0 +1,230 @@ +- args: + role: user + table: + name: jobs + schema: public + type: drop_update_permission +- args: + permission: + columns: + - converted + - inproduction + - special_coverage_policy + - asgn_date + - invoice_date + - loss_date + - pay_date + - kmin + - kmout + - est_number + - area_of_damage + - adjustment_bottom_line + - claim_total + - clm_total + - ded_amt + - deductible + - depreciation_taxes + - federal_tax_payable + - federal_tax_rate + - local_tax_rate + - other_amount_payable + - owner_owing + - pay_amt + - rate_atp + - rate_la1 + - rate_la2 + - rate_la3 + - rate_la4 + - rate_lab + - rate_lad + - rate_lae + - rate_laf + - rate_lag + - rate_lam + - rate_lar + - rate_las + - rate_lau + - rate_ma2s + - rate_ma2t + - rate_ma3s + - rate_mabl + - rate_macs + - rate_mahw + - rate_mapa + - rate_mash + - rate_matd + - state_tax_rate + - storage_payable + - towing_payable + - agt_addr1 + - agt_addr2 + - agt_city + - agt_co_id + - agt_co_nm + - agt_ct_fn + - agt_ct_ln + - agt_ct_ph + - agt_ct_phx + - agt_ctry + - agt_ea + - agt_fax + - agt_faxx + - agt_lic_no + - agt_ph1 + - agt_ph1x + - agt_ph2 + - agt_ph2x + - agt_st + - agt_zip + - asgn_no + - asgn_type + - cat_no + - ciecaid + - clm_addr1 + - clm_addr2 + - clm_city + - clm_ct_fn + - clm_ct_ln + - clm_ct_ph + - clm_ct_phx + - clm_ctry + - clm_ea + - clm_fax + - clm_faxx + - clm_no + - clm_ofc_id + - clm_ofc_nm + - clm_ph1 + - clm_ph1x + - clm_ph2 + - clm_ph2x + - clm_st + - clm_title + - clm_zip + - csr + - cust_pr + - ded_status + - est_addr1 + - est_addr2 + - est_city + - est_co_nm + - est_ct_fn + - est_ct_ln + - est_ctry + - est_ea + - est_ph1 + - est_st + - est_zip + - ins_addr1 + - ins_addr2 + - ins_city + - ins_co_id + - ins_co_nm + - ins_ct_fn + - ins_ct_ln + - ins_ct_ph + - ins_ct_phx + - ins_ctry + - insd_addr1 + - insd_addr2 + - insd_city + - insd_co_nm + - insd_ctry + - insd_ea + - insd_fax + - insd_faxx + - insd_fn + - insd_ln + - insd_ph1 + - insd_ph1x + - insd_ph2 + - insd_ph2x + - insd_st + - insd_title + - insd_zip + - ins_ea + - ins_fax + - ins_faxx + - ins_memo + - ins_ph1 + - ins_ph1x + - ins_ph2 + - ins_ph2x + - ins_st + - ins_title + - ins_zip + - labor_rate_desc + - labor_rate_id + - loss_cat + - loss_desc + - loss_type + - ownr_addr1 + - ownr_addr2 + - ownr_city + - ownr_co_nm + - ownr_ctry + - ownr_ea + - ownr_fax + - ownr_faxx + - ownr_fn + - ownr_ln + - ownr_ph1 + - ownr_ph1x + - ownr_ph2 + - ownr_ph2x + - ownr_st + - ownr_title + - ownr_zip + - pay_chknm + - payee_nms + - pay_type + - policy_no + - po_number + - referral_source + - regie_number + - ro_number + - selling_dealer + - selling_dealer_contact + - service_car + - servicing_dealer + - servicing_dealer_contact + - theft_ind + - tlos_ind + - unit_number + - actual_completion + - actual_delivery + - actual_in + - created_at + - date_closed + - date_estimated + - date_exported + - date_invoiced + - date_open + - date_scheduled + - scheduled_completion + - scheduled_delivery + - scheduled_in + - updated_at + - id + - ownerid + - shopid + - statusid + - vehicleid + filter: + bodyshop: + associations: + _and: + - user: + authid: + _eq: X-Hasura-User-Id + - active: + _eq: true + localPresets: + - key: "" + value: "" + set: {} + role: user + table: + name: jobs + schema: public + type: create_update_permission