feat(sgw): Implement Create or Update Banzone functionality with map integration
This commit is contained in:
69
src/utils/slave/sgw/fishRarity.ts
Normal file
69
src/utils/slave/sgw/fishRarity.ts
Normal file
@@ -0,0 +1,69 @@
|
||||
/**
|
||||
* Fish rarity levels
|
||||
*/
|
||||
export enum FishRarity {
|
||||
NORMAL = 1, // Phổ biến
|
||||
VULNERABLE = 2, // Dễ bị tổn thương
|
||||
NEAR_THREATENED = 3, // Gần bị đe dọa
|
||||
ENDANGERED = 4, // Nguy cấp
|
||||
CRITICALLY_ENDANGERED = 5, // Cực kỳ nguy cấp
|
||||
EXTINCT_IN_WILD = 6, // Tuyệt chủng trong tự nhiên
|
||||
EXTINCT = 7, // Tuyệt chủng
|
||||
DATA_DEFICIENT = 8, // Thiếu dữ liệu
|
||||
}
|
||||
|
||||
/**
|
||||
* Get rarity label by ID
|
||||
* @param id Rarity level ID
|
||||
* @returns Rarity label in Vietnamese
|
||||
*/
|
||||
export function getRarityById(id: number): string {
|
||||
switch (id) {
|
||||
case FishRarity.NORMAL:
|
||||
return 'Phổ biến';
|
||||
case FishRarity.VULNERABLE:
|
||||
return 'Dễ bị tổn thương';
|
||||
case FishRarity.NEAR_THREATENED:
|
||||
return 'Gần bị đe dọa';
|
||||
case FishRarity.ENDANGERED:
|
||||
return 'Nguy cấp';
|
||||
case FishRarity.CRITICALLY_ENDANGERED:
|
||||
return 'Cực kỳ nguy cấp';
|
||||
case FishRarity.EXTINCT_IN_WILD:
|
||||
return 'Tuyệt chủng trong tự nhiên';
|
||||
case FishRarity.EXTINCT:
|
||||
return 'Tuyệt chủng';
|
||||
case FishRarity.DATA_DEFICIENT:
|
||||
return 'Thiếu dữ liệu';
|
||||
default:
|
||||
return 'Không xác định';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get rarity label in English
|
||||
* @param id Rarity level ID
|
||||
* @returns Rarity label in English
|
||||
*/
|
||||
export function getRarityByIdEn(id: number): string {
|
||||
switch (id) {
|
||||
case FishRarity.NORMAL:
|
||||
return 'Common';
|
||||
case FishRarity.VULNERABLE:
|
||||
return 'Vulnerable';
|
||||
case FishRarity.NEAR_THREATENED:
|
||||
return 'Near Threatened';
|
||||
case FishRarity.ENDANGERED:
|
||||
return 'Endangered';
|
||||
case FishRarity.CRITICALLY_ENDANGERED:
|
||||
return 'Critically Endangered';
|
||||
case FishRarity.EXTINCT_IN_WILD:
|
||||
return 'Extinct in Wild';
|
||||
case FishRarity.EXTINCT:
|
||||
return 'Extinct';
|
||||
case FishRarity.DATA_DEFICIENT:
|
||||
return 'Data Deficient';
|
||||
default:
|
||||
return 'Unknown';
|
||||
}
|
||||
}
|
||||
18
src/utils/slave/sgw/groupUtils.ts
Normal file
18
src/utils/slave/sgw/groupUtils.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
export function flattenGroupNodes(
|
||||
nodes: MasterModel.GroupNode[],
|
||||
): MasterModel.GroupNode[] {
|
||||
const result: MasterModel.GroupNode[] = [];
|
||||
|
||||
function traverse(node: MasterModel.GroupNode) {
|
||||
const { children, ...nodeWithoutChildren } = node;
|
||||
result.push(nodeWithoutChildren);
|
||||
|
||||
if (children && children.length > 0) {
|
||||
children.forEach((child) => traverse(child));
|
||||
}
|
||||
}
|
||||
|
||||
nodes.forEach((node) => traverse(node));
|
||||
|
||||
return result;
|
||||
}
|
||||
25
src/utils/slave/sgw/timeUtils copy.ts
Normal file
25
src/utils/slave/sgw/timeUtils copy.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
export const formatDate = (dateString: string | number | Date) => {
|
||||
return new Date(dateString).toLocaleDateString('vi-VN', {
|
||||
year: 'numeric',
|
||||
month: '2-digit',
|
||||
day: '2-digit',
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Chuyển đổi unix time (string hoặc int) sang định dạng DD/MM/YY HH:mm:ss
|
||||
* @param unixTime Unix time (giây hoặc mili giây, dạng string hoặc int)
|
||||
* @returns Chuỗi thời gian định dạng DD/MM/YY HH:mm:ss
|
||||
*/
|
||||
export function formatUnixTime(unixTime: string | number): string {
|
||||
let ts = typeof unixTime === 'string' ? parseInt(unixTime, 10) : unixTime;
|
||||
if (ts < 1e12) ts *= 1000; // Nếu là giây, chuyển sang mili giây
|
||||
const d = new Date(ts);
|
||||
const pad = (n: number) => n.toString().padStart(2, '0');
|
||||
return `${pad(d.getDate())}/${pad(d.getMonth() + 1)}/${d
|
||||
.getFullYear()
|
||||
.toString()
|
||||
.slice(-2)} ${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(
|
||||
d.getSeconds(),
|
||||
)}`;
|
||||
}
|
||||
Reference in New Issue
Block a user