baodev0 and Claude Opus 5.5
46aa138eec
feat(admin): IP pool allocation, billing exports, service attachments
...
- IP pool: sheet import (xlsx/csv) matched by address, bulk allocate/revoke
with notification email (ip_allocated/ip_revoked), ip_pool_logs history.
- Orders/invoices: Excel export on branded template (BrandedReportWriter),
shared billing filters, order item service info in list responses.
- Web design quote Excel export; activity log export.
- Service attachments with copy-to-invoice; deployment invoice attachments.
- Customer email attachments stored on disk and attached by path.
- Admin password change endpoint; user.fullname backfill migration;
orders.user_id backfill from logs.
- Disable deploy workflow until CI/CD is set up.
- Ignore stored customer email and service attachment uploads.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-15 19:58:36 +07:00
..
2026-05-11 11:09:55 +07:00
2026-09-28 08:26:29 +07:00
2026-05-16 20:01:52 +07:00
2026-05-16 20:01:52 +07:00
2026-02-06 20:52:59 +07:00
2026-10-15 09:39:21 +07:00
2026-10-13 13:23:33 +07:00
2026-05-16 20:01:52 +07:00
2026-10-11 09:56:18 +07:00
2026-09-28 08:26:29 +07:00
2026-05-16 20:01:52 +07:00
2026-09-28 08:26:29 +07:00
2026-09-28 08:26:29 +07:00
2026-10-11 23:07:51 +07:00
2025-07-24 16:18:27 +07:00
2026-08-22 17:30:55 +07:00
2025-07-24 16:18:27 +07:00
2026-02-12 17:23:01 +07:00
2026-10-15 19:58:36 +07:00
2026-10-15 19:58:36 +07:00
2026-09-27 11:42:40 +07:00
2026-10-15 19:58:36 +07:00
2026-09-28 08:26:29 +07:00
2026-10-15 19:58:36 +07:00
2025-07-24 16:18:27 +07:00
2026-10-11 09:56:18 +07:00
2026-10-13 16:03:18 +07:00
2025-07-24 16:18:27 +07:00
2026-09-28 08:26:29 +07:00
2026-07-21 21:37:28 +07:00
2026-09-28 08:26:29 +07:00
2026-09-09 16:56:22 +07:00
2025-07-24 16:18:27 +07:00
2026-07-21 21:37:28 +07:00
2026-09-28 08:26:29 +07:00
2026-08-06 17:24:01 +07:00
2026-08-06 17:24:01 +07:00
2026-09-28 08:26:29 +07:00
2026-09-28 08:26:29 +07:00
2026-09-28 08:26:29 +07:00
2026-07-21 21:37:28 +07:00
2026-05-16 20:01:52 +07:00
2025-07-24 16:18:27 +07:00
2026-09-28 08:26:29 +07:00
2026-07-25 11:05:34 +07:00
2026-10-13 16:03:18 +07:00
2026-10-09 11:32:05 +07:00
2026-09-28 08:26:29 +07:00
2026-09-28 08:26:29 +07:00
2026-09-28 08:26:29 +07:00
2026-09-28 08:26:29 +07:00
2026-10-13 13:23:33 +07:00
2026-05-25 15:39:42 +07:00
2026-05-25 15:39:42 +07:00
2026-10-11 23:07:51 +07:00
2026-09-28 08:26:29 +07:00
2026-02-06 16:18:15 +07:00
2026-08-26 16:19:38 +07:00
2026-09-28 08:26:29 +07:00
2026-09-27 11:42:40 +07:00
2026-09-09 16:56:22 +07:00
2026-09-27 11:42:40 +07:00
2026-10-08 11:25:28 +07:00
2026-03-12 09:30:29 +07:00
2026-10-15 19:58:36 +07:00
2026-10-11 23:07:51 +07:00
2026-09-28 08:26:29 +07:00
2025-07-24 16:18:27 +07:00
2025-07-24 16:18:27 +07:00
2026-10-13 16:03:18 +07:00
2026-07-14 17:03:38 +07:00
2025-07-24 16:18:27 +07:00
2026-10-11 23:07:51 +07:00
2026-10-15 19:58:36 +07:00
2026-09-28 08:26:29 +07:00
2026-09-28 08:26:29 +07:00
2026-09-28 08:26:29 +07:00
2026-09-28 08:26:29 +07:00
2026-07-06 08:00:23 +07:00