Commit Graph

57 Commits

Author SHA1 Message Date
jmiller eb949e7bc1 chore: sync rc-revert.yml from Template-Generic [skip ci] 2026-06-21 01:30:14 +00:00
jmiller 83b05c9a57 chore: sync issue-branch.yml from Template-Generic [skip ci] 2026-06-21 01:30:13 +00:00
jmiller 65a2edffdd chore: sync auto-release.yml from Template-Generic [skip ci] 2026-06-21 01:30:11 +00:00
gitea-actions[bot] 31b7b47e47 chore(release): build 01.03.00 [skip ci] 2026-06-21 01:17:23 +00:00
jmiller fbd6d3c619 Merge pull request 'feat: CustomerFeedbackHelper — NPS surveys' (#19) from dev into main 2026-06-21 01:14:43 +00:00
Jonathan Miller 3cd36b94bf fix: feedback token race condition (FOR UPDATE), generic error for public users
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Successful in 1s
Generic: Project CI / Lint & Validate (pull_request) Successful in 6s
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Successful in 6s
Universal: PR Check / Validate PR (pull_request) Failing after 4s
Branch Cleanup / Delete merged branch (pull_request) Has been skipped
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 2s
Universal: Auto Version Bump / Version Bump (push) Successful in 7s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Failing after 7s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 16s
Generic: Project CI / Tests (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report Issues (pull_request) Has been cancelled
2026-06-20 20:14:31 -05:00
gitea-actions[bot] f33012cb90 chore(version): auto-bump patch 01.02.01-dev [skip ci] 2026-06-21 01:01:13 +00:00
Jonathan Miller a5bc28cd8a Add CustomerFeedbackHelper — post-service surveys, NPS scores, token-based feedback
Universal: Auto Version Bump / Version Bump (push) Successful in 8s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Failing after 7s
2026-06-20 20:00:21 -05:00
jmiller 1a123dda9a chore: sync pr-check.yml from Template-Generic [skip ci] 2026-06-20 23:48:47 +00:00
jmiller 5abbcc1f82 chore: sync gitleaks.yml from Template-Generic [skip ci] 2026-06-20 23:48:46 +00:00
jmiller 09009d68d0 chore: sync ci-generic.yml from Template-Generic [skip ci] 2026-06-20 23:48:46 +00:00
jmiller 11b7ec6ed8 chore: sync issue-branch.yml from Template-Generic [skip ci] 2026-06-20 21:37:22 +00:00
gitea-actions[bot] 41307be688 chore(release): build 01.02.00 [skip ci] 2026-06-20 21:35:40 +00:00
jmiller 89e0a5a216 Merge pull request 'feat: FieldReportsController API' (#18) from dev into main 2026-06-20 21:34:49 +00:00
jmiller 94a3f86d3a chore: sync workflow-sync-trigger.yml from Template-Generic [skip ci] 2026-06-20 20:56:48 +00:00
jmiller 05ca826504 chore: sync security-audit.yml from Template-Generic [skip ci] 2026-06-20 20:56:48 +00:00
jmiller 3a9ce0a8c2 chore: sync repo-health.yml from Template-Generic [skip ci] 2026-06-20 20:56:48 +00:00
jmiller 62c3044737 chore: sync rc-revert.yml from Template-Generic [skip ci] 2026-06-20 20:56:47 +00:00
jmiller 14fa157184 chore: sync pre-release.yml from Template-Generic [skip ci] 2026-06-20 20:56:47 +00:00
jmiller 0dcb78e20f chore: sync pr-check.yml from Template-Generic [skip ci] 2026-06-20 20:56:46 +00:00
jmiller 8d157cca38 chore: sync notify.yml from Template-Generic [skip ci] 2026-06-20 20:56:46 +00:00
jmiller 62046fa2c1 chore: sync issue-branch.yml from Template-Generic [skip ci] 2026-06-20 20:56:45 +00:00
jmiller 693661546b chore: sync gitleaks.yml from Template-Generic [skip ci] 2026-06-20 20:56:45 +00:00
jmiller 14ab14b8a8 chore: sync deploy-manual.yml from Template-Generic [skip ci] 2026-06-20 20:56:44 +00:00
jmiller 12ccf490ff chore: sync cleanup.yml from Template-Generic [skip ci] 2026-06-20 20:56:44 +00:00
jmiller 52e6d5635f chore: sync ci-generic.yml from Template-Generic [skip ci] 2026-06-20 20:56:43 +00:00
jmiller c3ce7f7f6a chore: sync cascade-dev.yml from Template-Generic [skip ci] 2026-06-20 20:56:43 +00:00
jmiller 197e2b7212 chore: sync branch-cleanup.yml from Template-Generic [skip ci] 2026-06-20 20:56:42 +00:00
jmiller 387a59eb9e chore: sync auto-release.yml from Template-Generic [skip ci] 2026-06-20 20:56:42 +00:00
jmiller 1fbdbbc7fe chore: sync auto-bump.yml from Template-Generic [skip ci] 2026-06-20 20:56:42 +00:00
Jonathan Miller 52c7684c6a Add FieldReportsController API — tech performance, revenue by trade, parts usage, SLA compliance
Branch Cleanup / Delete merged branch (pull_request) Has been skipped
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 15s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 2m33s
2026-06-20 15:50:54 -05:00
jmiller f3cce0fc68 Merge pull request 'feat: PartsHelper' (#17) from dev into main 2026-06-20 18:52:22 +00:00
Jonathan Miller 5911e97a26 Add PartsHelper — common parts by trade, usage tracking, stock deduction, low stock alerts 2026-06-20 13:21:17 -05:00
jmiller e81479d17e Merge pull request 'feat: FieldSchedulingController API' (#16) from dev into main 2026-06-18 17:47:40 +00:00
Jonathan Miller 6ad31dd8c0 Add FieldSchedulingController API — appointment slots, booking, daily schedule, tech routes 2026-06-18 11:43:16 -05:00
jmiller 85740cc8f6 Merge pull request 'feat: SchedulingHelper + block-stable CI' (#15) from dev into main 2026-06-18 16:24:09 +00:00
Jonathan Miller 78e172a50d Add SchedulingHelper — appointment slots, tech availability, daily schedule 2026-06-18 11:12:40 -05:00
Jonathan Miller 4bd5c4be0f ci: add block-stable workflow 2026-06-18 10:56:00 -05:00
jmiller f488c0ea12 feat: Full field service platform build — 17 commits 2026-06-18 14:55:44 +00:00
Jonathan Miller efae025a2f fix: Address PR review findings — CSRF, status guards, SQL safety, transactions
- Add CSRF token validation on EstimateView approve/reject forms
- Add status guard on reject branch (prevent reversing approved estimates)
- Fix loc.* column collision in WorkOrdersModel::getWorkOrder (overwrote wo.id)
- Add (int) cast on all query parameter concatenations
- Wrap InvoiceHelper::generateFromWorkOrder in database transaction
- Replace magic 0.5 divisor with AVG_SPEED_MPH constant in RouteHelper
2026-06-18 09:03:19 -05:00
Jonathan Miller e1b885939a Add EstimateView site view — public estimate approval page with e-signature and decline option 2026-06-18 08:28:01 -05:00
Jonathan Miller 71b5166251 Add InvoiceHelper — generate CRM invoices from completed work orders (labor hours + parts), batch invoicing 2026-06-18 08:24:57 -05:00
Jonathan Miller d2dc55539f Update MokoSuite → MokoSuiteClient submodule reference
Updated .gitmodules URL and path for the MokoSuite → MokoSuiteClient rename.
2026-06-15 16:49:11 -05:00
Jonathan Miller 3ba79d4367 Add 7 admin models — WorkOrders, Technicians, Equipment, Vehicles, ServiceAgreements, Estimates, Dispatch
All use Joomla 6 BaseDatabaseModel with $this->getDatabase()
2026-06-15 00:50:26 -05:00
Jonathan Miller 5b923b4869 Add FieldEquipment and FieldEstimates API controllers
- FieldEquipmentController: equipment CRUD, vehicles, truck stock, service agreements
- FieldEstimatesController: estimates CRUD, convert-to-WO, route optimization API
2026-06-15 00:35:18 -05:00
Jonathan Miller 532e514106 Add RouteHelper — daily route building, nearest-neighbor optimization, GPS breadcrumbs, drive time estimates 2026-06-14 15:00:47 -05:00
Jonathan Miller d08648f2fc feat: customer service portal + mobile API (GPS, photos, time, parts) 2026-06-13 09:20:13 -05:00
Jonathan Miller ca513b61ee feat: mobile tech API — GPS, photos, time tracking, parts usage, equipment QR
FieldMobileController: 8 endpoints for field tech mobile app — my jobs
(priority-sorted with customer/location data), status updates with GPS,
photo upload with geotag, start/stop time entries, log parts from truck
stock (auto-deducts + adds WO line item), GPS heartbeat, equipment QR
code lookup. Auth requires technician profile linked to Joomla user.
2026-06-13 08:57:09 -05:00
Jonathan Miller a146c106a3 chore: CI workflow, language files, CSS, JS infrastructure 2026-06-13 08:37:43 -05:00
Jonathan Miller ceb03dba48 feat: equipment, dispatch, vehicles views + truck stock/vehicle helpers
TruckStockHelper: per-vehicle inventory, low stock, use/restock parts.
VehicleHelper: fleet overview, inspection due dates.
Admin views: Equipment list with service due alerts, Dispatch board
with date picker and tech assignments, Vehicles fleet with low stock
indicators and inspection tracking. All with templates.
2026-06-13 08:14:33 -05:00