Files
dukang/server/dukang-api/prisma/migrate-wecom-report.ts
T
jacy 68a4b7f984
CI / verify (pull_request) Waiting to run
v4.0.14概览和日报
2026-09-02 21:11:58 +08:00

55 lines
1.8 KiB
TypeScript

/**
* 创建 wecom_report_push(若不存在)并写入日/周/月默认行。
* 不依赖 Prisma Client 新 model,可在 generate 之前执行。
*/
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
const PLACEHOLDER = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=PENDING';
async function main() {
await prisma.$executeRawUnsafe(`
CREATE TABLE IF NOT EXISTS wecom_report_push (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
kind VARCHAR(16) NOT NULL,
name VARCHAR(64) NOT NULL,
webhook_url VARCHAR(512) NOT NULL,
enabled TINYINT(1) NOT NULL DEFAULT 0,
mention_wecom_user_id VARCHAR(64) NULL,
send_hour INT NOT NULL DEFAULT 20,
send_minute INT NOT NULL DEFAULT 0,
send_weekday INT NOT NULL DEFAULT 1,
send_month_day INT NOT NULL DEFAULT 1,
last_sent_period VARCHAR(16) NULL,
last_sent_at DATETIME(3) NULL,
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
UNIQUE KEY wecom_report_push_kind_key (kind)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
`);
const seeds: Array<[string, string, number]> = [
['daily', '经营日报', 20],
['weekly', '经营周报', 9],
['monthly', '经营月报', 9],
];
for (const [kind, name, hour] of seeds) {
await prisma.$executeRaw`
INSERT IGNORE INTO wecom_report_push
(kind, name, webhook_url, enabled, send_hour, send_minute, send_weekday, send_month_day)
VALUES
(${kind}, ${name}, ${PLACEHOLDER}, 0, ${hour}, 0, 1, 1)
`;
}
console.log('migrate-wecom-report done');
}
main()
.catch((e) => {
console.error(e);
process.exit(1);
})
.finally(async () => {
await prisma.$disconnect();
});