Đây là lỗi nghiêm trọng nhất vì nó làm phần luồng nghiệp vụ tham chiếu sai biểu mẫu.
Bảng "Danh sách yêu cầu phần mềm" ghi:
| STT | Nhóm Dụng Cụ | Tên Trang Thiết Bị / Công Cụ / Hóa Chất | Số Lượng Dự Phòng (Quy mô 30 - 50 Nhân sự) | Công Dụng & Mục Đích Vận Hành | Ghi Chú Đặc Thù Tiệc Lưu Động (Outside Catering) |
|---|---|---|---|---|---|
| I | KHÔNG GIAN & BÀN GHẾ | ||||
| 1 | Khung rạp tiệc di động | Bạt che khổ lớn (10 - 15 bộ rạp rời) | 30 - 50 khung rạp module kết nối | Che nắng mưa, dựng không gian tiệc ngoài trời/sân vườn | Dạng lắp ghép nhanh, xếp gọn lên xe tải |
| 2 |
Tài liệu góp ý, rà soát và bổ sung cho "Báo cáo đồ án SE100" (Nhóm 15). Đề tài: dịch vụ nấu tiệc lưu động kiểu Việt Nam — tiệc được tổ chức tại nhà khách, công ty, sân bãi, hội trường hay địa điểm khách chỉ định, không phải tiệc tại sảnh nhà hàng.
Ký hiệu mức độ ưu tiên dùng xuyên suốt:
- 🔴 [Bắt buộc sửa] — lỗi, mâu thuẫn hoặc thiếu sót sẽ bị hỏi khi bảo vệ.
- 🟠 [Nên có] — làm báo cáo chặt chẽ và sát thực tế hơn rõ rệt.
- 🟢 [Mở rộng] — điểm cộng, chỉ làm nếu còn thời gian.
Billing works end to end against the Stripe sandbox for seed, checkout, portal, cancel-now with refund, and workspace deletion. Two authorization bugs blocked it first. One I changed in code and one I only worked around. The payer-removal and payer-claim flow (Task 10) was not tested.
Environment
┌───────────────┬────────
Status: agreed design, ready to implement. Supersedes
./tmp/SUBSCRIPTION_PLAN.md. Written 2026-10-10 on branchkevinnitrog/billing-service. Part 1 is the newbillingservice. Part 2 lists every change needed in other services, including pre-existing gaps found while designing. Part 3 is build order and TODO.
| {"timestamp":"2026-04-18T07:27:14.981179392Z","level":"INFO","fields":{"message":"log cleaner compression profile configured","compression_algorithm":"zstd","parallel_compress":true,"parallel_workers":6,"zstd_level":8,"zstd_fallback_to_gzip":true,"zstd_workers":1},"target":"rustfs_obs::telemetry::local","filename":"crates/obs/src/telemetry/local.rs","line_number":463,"threadName":"main","threadId":"ThreadId(1)"} | |
| {"timestamp":"2026-04-18T07:27:14.981237383Z","level":"INFO","fields":{"message":"Init file logging at '/logs', rotation: hourly, keep 30 files"},"target":"rustfs_obs::telemetry::local","filename":"crates/obs/src/telemetry/local.rs","line_number":283,"threadName":"main","threadId":"ThreadId(1)"} | |
| {"timestamp":"2026-04-18T07:27:14.981273611Z","level":"INFO","fields":{"message":"Initializing global guard"},"target":"rustfs_obs::global","filename":"crates/obs/src/global.rs","line_number":147,"threadName":"main","threadId":"ThreadId(1)"} |