Constants (@vppos/core/constants)
import { STORAGE_KEYS, MODULE_KEYS, ROLES } from "@vppos/core/constants";
STORAGE_KEYS
Keys cho localStorage/sessionStorage. Luôn dùng constant này — không hard-code string.
// ✅ Đúng
localStorage.getItem(STORAGE_KEYS.token);
// ❌ Sai
localStorage.getItem("access_token");
MODULE_KEYS
Keys cho module permission (match với backend):
MODULE_KEYS.PRODUCTS; // "products"
MODULE_KEYS.WAREHOUSE; // "warehouse"
MODULE_KEYS.ROLE_PERMISSION_MANAGEMENT;
MODULE_KEYS.BRANCH_STORE;
MODULE_KEYS.USERS;
ROLES
User roles:
ROLES.SUPER_ADMIN; // "superadmin"
ROLES.ADMIN; // "admin"
ROLES.STAFF; // "staff"
IMAGES
Hằng số quản lý toàn bộ assets (ảnh, icon) của hệ thống. Không sử dụng URL từ xa (https://...) cho các ảnh hệ thống.
import { IMAGES } from "@vppos/core/constants";
// ✅ Ảnh dùng chung từ Core
<img src={IMAGES.SYSTEM.UNDER_DEVELOPMENT} />
<img src={IMAGES.SYSTEM.ERROR_404} />
// ✅ Ảnh fallback mặc định khi data API bị thiếu
<Avatar src={user.avatar || IMAGES.DEFAULT.AVATAR} />
<Avatar src={company.logo || IMAGES.DEFAULT.COMPANY} />
Các phân cấp chính:
DEFAULT: Các ảnh fallback/placeholder (Avatar, Company, General Fallback).BRAND: Core identity (Logo các ngân hàng, Favicon...).SYSTEM: UI assets dùng chung (OTP, 404, Zalo, Flags...).
thông tin
Nếu là ảnh riêng của một module cụ thể (ví dụ: ảnh minh họa tính năng), hãy đặt tại apps/<module>/src/assets và import tĩnh vào component.
Quy tắc
cảnh báo
Nếu cần thêm constant mới dùng chung → thêm vào @vppos/core/constants, không tự tạo trong app.