Tuần này tập trung vào tái cấu trúc cơ sở dữ liệu (chuẩn hoá schema) cho hệ thống dữ liệu địa điểm — đây là phần việc lớn nhất và quan trọng nhất — song song với việc nâng cấp crawler đa nền tảng, hoàn thiện CRM lead/AI comment, và đưa vào vận hành pipeline đẩy sự kiện sang CheckEvent.
Khối lượng commit theo dự án:
Trong tuần đã thực hiện hai đợt chuẩn hoá schema lớn trên kho dữ liệu địa điểm (chicgo_data + chicdata_dashboard dùng chung 1 Postgres production). Triết lý xuyên suốt: mỗi loại dữ liệu chỉ có duy nhất một nơi lưu và một hàm chuẩn hoá (single source of truth), giảm trùng lặp và loại bỏ logic xử lý rẽ nhánh.
Gom các trường rời rạc, đặt tên gây hiểu lầm về một cột chuẩn duy nhất:
| Khái niệm | Trước đây | Sau khi cải tiến | Lợi ích |
|---|---|---|---|
| Giờ mở cửa | 2 cột text: opens_at + opening_hours |
1 cột JSONB opens_at = {raw, is_24h, schedule Mon–Sun} |
Lịch đã parse sẵn; gộp thông minh, không mất lịch chi tiết khi recrawl |
| Danh mục phụ | 3 nguồn rải rác: fsq_category_ids, sub_segments, google_categories |
1 cột sub_categories (gộp & khử trùng) — đã chuyển 9.165 dòng |
Tên cũ gây hiểu lầm; nay thống nhất, không mất dữ liệu khi recrawl |
| Website & liên kết | 2 trường: website + bd_links |
1 mảng JSONB links [{url, label, added_by}] |
Một danh sách duy nhất, khử trùng theo URL, giữ nguồn gốc (crawler/BD/user) |
| Khu vực hành chính | text thô admin_division |
chuẩn hoá administrative_area theo quốc gia |
Lọc/nhóm theo địa giới chính xác hơn |
| Trường thô | cột raw (payload tuỳ ý) |
đã bỏ hẳn | Các trường có cấu trúc đã đủ; giảm rác lưu trữ |
| Đánh giá (reviews) | tách theo nguồn (v1/v2, community) | 1 mảng reviews[] duy nhất |
Đơn giản hoá, một nguồn sự thật cho review |
Đợt cải tiến lớn nhất: trước đây giá nằm rải ở 4 nơi khác nhau (bảng quan hệ prices, price_range của Google, hotel_prices của OTA, price_sources của ShopeeFood) với mỗi nơi một định dạng. Nay gom tất cả về một cột JSONB places.prices theo một cấu trúc cây PriceItem đệ quy duy nhất.
attributes của từng món.chicdata_dashboard đã được trỏ lại đọc theo schema mới (đồng bộ lockstep với DB).Tài liệu thiết kế & kế hoạch đi kèm: docs/.../2026-06-07-unified-price-schema-design.md và plan tương ứng. Backup: backups/pre_unified_price_20260608-092936.dump.
Đây là công cụ báo cáo trực quan để chị theo dõi dữ liệu & hiệu suất. Tuần này dashboard được nâng cấp đáng kể về cả số liệu lẫn UI/UX:
places.prices, dựng lại panel ShopeeFood, cập nhật theo các đổi tên cột (sub_categories, links, opens_at JSONB). Đây là phần bắt buộc đi kèm các thay đổi DB ở mục 1.reports/field-mapping-report-2026-06-03.html: bảng đối chiếu toàn bộ trường dữ liệu địa điểm sau chuẩn hoá (rất hữu ích để chị nắm "trường nào đổi thành gì")./docs): tài liệu giải thích quy trình crawl & cách tính điểm lead — chị/đội sale có thể tự đọc để hiểu hệ thống chấm điểm.Nền tảng tự crawl Facebook Groups + Threads.com, chấm điểm lead bằng AI và quản lý pipeline bán hàng. Tuần này:
platforms); thêm icon nền tảng trong UI./docs — site docs công khai phong cách Apple (sạch, không icon): Crawl Flows, hướng dẫn scraper Facebook, cơ chế AI Scoring (thang điểm 0–100, từ điển tag).ETL crawl sự kiện từ các sàn vé (TicketGo, Ticketbox) và đẩy sang API CheckEvent. Tuần này đưa vào vận hành tự động:
Điểm nhấn tuần: nền tảng dữ liệu đã được chuẩn hoá triệt để (giá, giờ mở cửa, danh mục, liên kết về một mối duy nhất, có validator chặn lỗi). Đây là nền móng để báo cáo & dashboard cho chị chạy chính xác và dễ mở rộng về sau.
Theo dõi tiếp: sau khi cutover schema giá, cần tiếp tục giám sát dashboard & các export đọc đúng cây places.prices (vì DB và dashboard dùng chung Postgres production, mọi thay đổi schema phải đổi code + redeploy đồng bộ).