'城市详情'
This commit is contained in:
12
config/index.ts
Normal file
12
config/index.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
export { SITE_CONFIG, getSiteConfig } from "./site.config";
|
||||
export {
|
||||
getPocketBaseConfig,
|
||||
getPaymentConfig,
|
||||
getJoinPaymentConfig,
|
||||
getMinioConfig,
|
||||
} from "./services.config";
|
||||
export type {
|
||||
PocketBaseConfig,
|
||||
PaymentConfig,
|
||||
MinioConfig,
|
||||
} from "./services.config";
|
||||
94
config/services.config.ts
Normal file
94
config/services.config.ts
Normal file
@@ -0,0 +1,94 @@
|
||||
/**
|
||||
* 服务配置 - PocketBase、支付、MinIO
|
||||
*/
|
||||
|
||||
export interface PocketBaseConfig {
|
||||
enabled: boolean;
|
||||
url: string;
|
||||
usersCollection: string;
|
||||
joinCollection: string;
|
||||
}
|
||||
|
||||
export interface PaymentConfig {
|
||||
enabled: boolean;
|
||||
apiUrl: string;
|
||||
provider: "zpay" | "xorpay";
|
||||
defaultAmount: number;
|
||||
defaultType: string;
|
||||
zpaySubmitUrl: string;
|
||||
}
|
||||
|
||||
export interface MinioConfig {
|
||||
enabled: boolean;
|
||||
endPoint: string;
|
||||
port: number;
|
||||
useSSL: boolean;
|
||||
bucket: string;
|
||||
accessKey: string;
|
||||
secretKey: string;
|
||||
region: string;
|
||||
publicUrl: string;
|
||||
uploadPrefix: string;
|
||||
}
|
||||
|
||||
const isDev = process.env.NODE_ENV === "development";
|
||||
|
||||
export function getPocketBaseConfig(): PocketBaseConfig {
|
||||
return {
|
||||
enabled: true,
|
||||
url:
|
||||
process.env.NEXT_PUBLIC_POCKETBASE_URL ||
|
||||
process.env.POCKETBASE_URL ||
|
||||
"https://pocketbase.hackrobot.cn",
|
||||
usersCollection: "users",
|
||||
joinCollection: process.env.POCKETBASE_JOIN_COLLECTION || "solan",
|
||||
};
|
||||
}
|
||||
|
||||
export function getPaymentConfig(): PaymentConfig {
|
||||
return {
|
||||
enabled: true,
|
||||
apiUrl:
|
||||
process.env.PAYMENT_API_URL ||
|
||||
(isDev ? "http://127.0.0.1:8700" : "https://api.hackrobot.cn"),
|
||||
provider: (process.env.PAYMENT_PROVIDER as "zpay" | "xorpay") || "zpay",
|
||||
defaultAmount: Number(process.env.PAYMENT_DEFAULT_AMOUNT) || 80,
|
||||
defaultType: process.env.PAYMENT_DEFAULT_TYPE || "meetup",
|
||||
zpaySubmitUrl: process.env.ZPAY_SUBMIT_URL || "https://zpayz.cn/submit.php",
|
||||
};
|
||||
}
|
||||
|
||||
/** 获取「加入」场景的支付配置 */
|
||||
export function getJoinPaymentConfig(): { amount: number; type: string } {
|
||||
const payment = getPaymentConfig();
|
||||
return {
|
||||
amount: Number(process.env.PAYMENT_JOIN_AMOUNT) || payment.defaultAmount,
|
||||
type: process.env.PAYMENT_JOIN_TYPE || payment.defaultType,
|
||||
};
|
||||
}
|
||||
|
||||
export function getMinioConfig(themeOverride?: {
|
||||
bucket?: string;
|
||||
uploadPrefix?: string;
|
||||
}): MinioConfig {
|
||||
const endPoint = process.env.MINIO_ENDPOINT || "minioweb.hackrobot.cn";
|
||||
const port = parseInt(process.env.MINIO_PORT || "9035", 10);
|
||||
const bucket = themeOverride?.bucket || process.env.MINIO_BUCKET || "hackrobot";
|
||||
const publicUrl =
|
||||
process.env.MINIO_PUBLIC_URL || `https://${endPoint}/${bucket}`;
|
||||
const uploadPrefix =
|
||||
themeOverride?.uploadPrefix || process.env.MINIO_UPLOAD_PREFIX || "joins";
|
||||
|
||||
return {
|
||||
enabled: true,
|
||||
endPoint,
|
||||
port,
|
||||
useSSL: process.env.MINIO_USE_SSL === "true",
|
||||
bucket,
|
||||
accessKey: process.env.MINIO_ACCESS_KEY || "",
|
||||
secretKey: process.env.MINIO_SECRET_KEY || "",
|
||||
region: process.env.MINIO_REGION || "china",
|
||||
publicUrl: publicUrl.replace(/\/$/, ""),
|
||||
uploadPrefix,
|
||||
};
|
||||
}
|
||||
15
config/site.config.ts
Normal file
15
config/site.config.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
/**
|
||||
* 游牧中国站点配置
|
||||
*/
|
||||
|
||||
export const SITE_CONFIG = {
|
||||
meta: {
|
||||
title: "游牧中国 - 数字游民的理想目的地",
|
||||
description:
|
||||
"发现全球最适合远程工作和生活的城市,加入中国数字游民社区,探索远程办公新方式",
|
||||
},
|
||||
};
|
||||
|
||||
export function getSiteConfig() {
|
||||
return SITE_CONFIG;
|
||||
}
|
||||
Reference in New Issue
Block a user