mosaicmap/types/config.ts
2025-08-14 21:34:16 +08:00

277 lines
6.7 KiB
TypeScript

export interface Config {
// App Configuration
app: {
name: string
version: string
debug: boolean
timezone: string
}
// Database Configuration
database: {
max_connections: number
connection_timeout: number
}
// Kafka Configuration
kafka: {
max_retries: number
retry_delay: number
}
// Security Configuration
security: {
session_timeout: number
max_login_attempts: number
}
// Logging Configuration
logging: {
level: string
max_files: number
}
// Cache Configuration
cache: {
ttl: number
max_size: number
}
// Site Configuration
site: {
name: string
locale_default: string
locales_supported: string[]
brand: {
logo_url: string
primary_color: string
dark_mode_default: boolean
}
footer_links: Array<{
name: string
url: string
visible_to_guest: boolean
}>
}
// Notice Configuration
notice: {
banner: {
enabled: boolean
text: Record<string, string>
}
}
// Maintenance Configuration
maintenance: {
window: {
enabled: boolean
start_time: string
end_time: string
message: Record<string, string>
}
}
// Modal Announcements
modal: {
announcements: Array<{
id: string
title: Record<string, string>
content: Record<string, string>
start_time: string
end_time: string
audience: string[]
priority: string
}>
}
// Documentation Links
docs: {
links: Array<{
name: string
url: string
description: string
}>
}
// Support Channels
support: {
channels: {
email: string
ticket_system: string
chat_groups: Array<{
name: string
url?: string
qr_code?: string
description: string
}>
working_hours: Record<string, string>
}
}
// Operations Configuration
ops: {
features: {
registration_enabled: boolean
invite_code_required: boolean
email_verification: boolean
}
limits: {
max_users: number
max_invite_codes_per_user: number
session_timeout_hours: number
}
notifications: {
welcome_email: boolean
system_announcements: boolean
maintenance_alerts: boolean
}
}
}
export const defaultConfig: Config = {
// App Configuration
app: {
name: "MMAP System",
version: "1.0.0",
debug: false,
timezone: "UTC"
},
// Database Configuration
database: {
max_connections: 10,
connection_timeout: 30
},
// Kafka Configuration
kafka: {
max_retries: 3,
retry_delay: 1000
},
// Security Configuration
security: {
session_timeout: 3600,
max_login_attempts: 5
},
// Logging Configuration
logging: {
level: "info",
max_files: 10
},
// Cache Configuration
cache: {
ttl: 300,
max_size: 1000
},
// Site Configuration
site: {
name: "MMAP System",
locale_default: "zh-CN",
locales_supported: ["zh-CN", "en"],
brand: {
logo_url: "/images/logo.png",
primary_color: "#3B82F6",
dark_mode_default: false
},
footer_links: [
{ name: "关于我们", url: "/about", visible_to_guest: true },
{ name: "联系我们", url: "/contact", visible_to_guest: true },
{ name: "用户中心", url: "/dashboard", visible_to_guest: false }
]
},
// Notice Configuration
notice: {
banner: {
enabled: false,
text: {
"zh-CN": "欢迎使用MMAP系统",
"en": "Welcome to MMAP System"
}
}
},
// Maintenance Configuration
maintenance: {
window: {
enabled: false,
start_time: "2024-01-01T02:00:00Z",
end_time: "2024-01-01T06:00:00Z",
message: {
"zh-CN": "系统维护中,请稍后再试",
"en": "System maintenance in progress"
}
}
},
// Modal Announcements
modal: {
announcements: [
{
id: "welcome_2024",
title: {
"zh-CN": "2024新年快乐",
"en": "Happy New Year 2024"
},
content: {
"zh-CN": "感谢您在过去一年的支持",
"en": "Thank you for your support in the past year"
},
start_time: "2024-01-01T00:00:00Z",
end_time: "2024-01-31T23:59:59Z",
audience: ["all"],
priority: "high"
}
]
},
// Documentation Links
docs: {
links: [
{ name: "API文档", url: "/docs/api", description: "完整的API接口文档" },
{ name: "图例说明", url: "/docs/legend", description: "系统图例和符号说明" },
{ name: "计费说明", url: "/docs/billing", description: "详细的计费规则和说明" },
{ name: "用户手册", url: "/docs/user-guide", description: "用户操作指南" }
]
},
// Support Channels
support: {
channels: {
email: "support@mapp.com",
ticket_system: "/support/tickets",
chat_groups: [
{ name: "官方QQ群", url: "https://qm.qq.com/xxx", description: "技术交流群" },
{ name: "微信群", qr_code: "/images/wechat-qr.png", description: "扫码加入微信群" }
],
working_hours: {
"zh-CN": "周一至周五 9:00-18:00",
"en": "Mon-Fri 9:00-18:00"
}
}
},
// Operations Configuration
ops: {
features: {
registration_enabled: true,
invite_code_required: true,
email_verification: false
},
limits: {
max_users: 1000,
max_invite_codes_per_user: 10,
session_timeout_hours: 24
},
notifications: {
welcome_email: true,
system_announcements: true,
maintenance_alerts: true
}
}
}