- 品牌替换:OpenCode/opencode → AirCoding/aircoding(16+ 文件) - Logo ASCII art:修复 left/right 行数不匹配导致的启动崩溃 - 启动诊断:添加 OPENCODE_PRINT_TIMING 计时探针 - dev 模式默认 --pure 跳过外部插件加载 - AGENTS.md 模板:追加 AirCoding 多 Agent 专项段落 - architect prompt + plugin:强化 AGENTS.md 产出验证
25 lines
630 B
TypeScript
25 lines
630 B
TypeScript
import { Database } from "../src/drizzle/index.js"
|
|
import { CouponTable, CouponType } from "../src/schema/billing.sql.js"
|
|
|
|
const email = process.argv[2]
|
|
const type = process.argv[3] as (typeof CouponType)[number]
|
|
|
|
if (!email || !type) {
|
|
console.error(`Usage: bun create-coupon.ts <email> <${CouponType.join("|")}>`)
|
|
process.exit(1)
|
|
}
|
|
|
|
if (!(CouponType as readonly string[]).includes(type)) {
|
|
console.error(`Error: type must be one of ${CouponType.join(", ")}`)
|
|
process.exit(1)
|
|
}
|
|
|
|
await Database.use((tx) =>
|
|
tx.insert(CouponTable).values({
|
|
email,
|
|
type,
|
|
}),
|
|
)
|
|
|
|
console.log(`Created ${type} coupon for ${email}`)
|