@mfukushim/map-traveler-mcp
Version:
Virtual traveler library for MCP
131 lines (130 loc) • 6.49 kB
JavaScript
/*! map-traveler-mcp | MIT License | https://github.com/mfukushim/map-traveler-mcp */
import { sqliteTable, integer, text, real, unique } from "drizzle-orm/sqlite-core";
export const runAvatar = sqliteTable("run_avatar", {
id: integer('id', { mode: "number" }).primaryKey({ autoIncrement: true }),
name: text('name').notNull(),
modelId: integer('modelId').notNull(),
created: integer('created', { mode: "timestamp" }).notNull(),
enable: integer('enable', { mode: "boolean" }).default(false).notNull(),
nextStayTime: integer('nextStayTime', { mode: "timestamp" }),
lang: text('lang').notNull(),
currentRoute: text('currentRoute')
});
export const avatarModel = sqliteTable("avatar_model", {
id: integer('id', { mode: "number" }).primaryKey({ autoIncrement: true }),
label: text('comment').notNull(),
baseCharPrompt: text('baseCharPrompt').notNull(),
created: integer('created', { mode: "timestamp" }).notNull(),
generateAiId: text('generateAiId').notNull(),
modelName: text('modelName').notNull(),
});
export const runAbroadRoute = sqliteTable("run_abroad_route", {
id: integer('id', { mode: "number" }).primaryKey({ autoIncrement: true }).notNull(),
html_instructions: text('html_instructions').notNull(),
maneuver: text('maneuver').notNull(),
duration: integer('duration').notNull(),
terminalStart: integer('terminalStart').notNull(),
terminalEnd: integer('terminalStart').notNull(),
});
export const runTerminal = sqliteTable("run_terminal", {
id: integer('id', { mode: "number" }).primaryKey({ autoIncrement: true }),
country: text('country').notNull(),
name: text('name').notNull(),
type: text('type').notNull(),
lat: real('lat').notNull().default(0),
lng: real('lng').notNull().default(0),
});
export const run_status = sqliteTable("run_status", {
id: integer('id', { mode: "number" }).primaryKey({ autoIncrement: true }),
avatarId: integer("avatarId").default(1).notNull(),
tripId: integer("tripId").default(0).notNull(),
tilEndEpoch: integer("tilEndEpoch").default(0).notNull(),
status: text("status", { enum: ["stop", "running", "vehicle"] }).notNull(),
from: text("from").notNull(),
to: text("to").notNull(),
destination: text("destination"),
startLat: real("startLat").notNull(),
startLng: real("startLng").notNull(),
endLat: real("endLat").notNull(),
endLng: real("endLng").notNull(),
durationSec: integer("durationSec").notNull(),
distanceM: integer("distanceM").notNull(),
startTime: integer("startTime", { mode: "timestamp" }).notNull(),
endTime: integer("endTime", { mode: "timestamp" }),
startCountry: text("startCountry", { length: 4 }).default('NULL'),
endCountry: text("endCountry", { length: 4 }).default('NULL'),
startTz: text("startTz").default('NULL'),
endTz: text("endTz").default('NULL'),
currentPathNo: integer("currentPathNo").default(0).notNull(),
currentStepNo: integer("currentStepNo").default(0).notNull(),
});
export const avatar_model = sqliteTable("avatar_model", {
id: integer('id', { mode: "number" }).primaryKey({ autoIncrement: true }),
comment: text("comment").notNull(),
baseCharPrompt: text("baseCharPrompt").notNull(),
created: integer("created", { mode: "timestamp" }).notNull(),
modelName: text("modelName").notNull(),
});
export const env_kv = sqliteTable("env_kv", {
key: text('key').primaryKey(),
value: text("value").notNull(),
created: integer("created", { mode: "timestamp" }).notNull(),
updated: integer("updated", { mode: "timestamp" }).notNull(),
});
export const anniversary = sqliteTable("anniversary", {
id: integer('id', { mode: "number" }).primaryKey({ autoIncrement: true }),
year: integer("year").notNull(),
month: integer("month").notNull(),
day: integer("day").notNull(),
name: text("name").notNull(),
dayOff: integer("dayOff").default(0).notNull(),
dayType: integer("dayType").default(0).notNull(),
historyType: integer("historyType").default(0).notNull(),
historyId: integer("historyId").default(0).notNull(),
del: integer("del", { mode: "boolean" }).default(false).notNull(),
created: integer("created", { mode: "timestamp" }).notNull(),
});
export const run_history = sqliteTable("run_history", {
seq: integer("seq").notNull(),
tripId: integer("tripId").notNull(),
lng: real("lng").notNull(),
lat: real("lat").notNull(),
elapsed: integer("elapsed").notNull(),
address: text("address").default('NULL'),
imagePath: text("imagePath").default('NULL'),
coursePath: text("coursePath").default('NULL'),
placePath: text("placePath").default('NULL'),
plainPath: text("plainPath").default('NULL'),
createTime: integer("createTime", { mode: "timestamp" }).notNull(),
time: integer("time", { mode: "timestamp" }).notNull(),
standOffsetX: integer("standOffsetX").default(0).notNull(),
standOffsetY: integer("standOffsetY").default(0).notNull(),
model: text("model").default('NULL'),
fitImage: integer("fitImage", { mode: "number" }).default(0).notNull(),
appendPrompt: text("appendPrompt").default('NULL'),
pictAuthor: text("pictAuthor").default('NULL'),
}, (table) => [
unique("UQ_seq").on(table.seq),
]);
export const avatar_sns = sqliteTable("avatar_sns", {
id: integer('id', { mode: "number" }).primaryKey({ autoIncrement: true }),
assignAvatarId: integer("assignAvatarId").notNull(),
snsType: text("snsType", { length: 4, enum: ["bs", "tw", "md", "sk"] }).notNull(),
snsHandleName: text("snsHandleName").notNull(),
snsId: text("snsId").notNull(),
feedSeenAt: integer("checkedPostId").notNull().default(0),
mentionSeenAt: integer("mentionPostId").notNull().default(0),
created: integer("created", { mode: 'timestamp' }).notNull(),
enable: integer("enable", { mode: "boolean" }).default(false).notNull(),
});
export const sns_posts = sqliteTable("sns_posts", {
id: integer('id', { mode: "number" }).primaryKey({ autoIncrement: true }),
snsType: text("snsType", { length: 2 }).notNull(),
snsPostId: text("snsPostId").notNull(),
snsReplyId: text("snsReplyId").default('NULL'),
postType: integer("postType").notNull(),
sendUserId: text("sendUserId").notNull(),
info: text("info").default('NULL'),
del: integer("del", { mode: "boolean" }).notNull(),
createTime: integer("createTime", { mode: 'timestamp' }).notNull(),
});