| 
1 |  | -// import { actor, setup } from "rivetkit";  | 
2 |  | -// import { db } from "@rivetkit/db/drizzle";  | 
3 |  | -// import * as schema from "./db/schema";  | 
4 |  | -// import migrations from "../drizzle/migrations";  | 
 | 1 | +import { actor, setup } from "@rivetkit/actor";  | 
 | 2 | +import { db } from "@rivetkit/db/drizzle";  | 
 | 3 | +import { desc } from "drizzle-orm";  | 
 | 4 | +import migrations from "../drizzle/migrations";  | 
 | 5 | +import * as schema from "./db/schema";  | 
5 | 6 | 
 
  | 
6 |  | -// export const counter = actor({  | 
7 |  | -// 	db: db({ schema, migrations }),  | 
8 |  | -// 	state: {  | 
9 |  | -// 		count: 0,  | 
10 |  | -// 	},  | 
11 |  | -// 	onAuth: () => {  | 
12 |  | -// 		// Configure auth here  | 
13 |  | -// 	},  | 
14 |  | -// 	actions: {  | 
15 |  | -// 		increment: (c, x: number) => {  | 
16 |  | -// 			// createState or state fix fix fix  | 
17 |  | -// 			c.db.c.state.count += x;  | 
18 |  | -// 			return c.state.count;  | 
19 |  | -// 		},  | 
20 |  | -// 	},  | 
21 |  | -// });  | 
 | 7 | +export const chat = actor({  | 
 | 8 | +	db: db({ schema, migrations }),  | 
 | 9 | +	onAuth: () => {},  | 
 | 10 | +	actions: {  | 
 | 11 | +		// Callable functions from clients: https://rivet.gg/docs/actors/actions  | 
 | 12 | +		sendMessage: async (c, sender: string, text: string) => {  | 
 | 13 | +			const message = { sender, text, timestamp: Date.now() };  | 
 | 14 | +			// State changes are automatically persisted  | 
 | 15 | +			await c.db.insert(schema.messagesTable).values(message);  | 
 | 16 | +			// Send events to all connected clients: https://rivet.gg/docs/actors/events  | 
 | 17 | +			c.broadcast("newMessage", message);  | 
 | 18 | +			return message;  | 
 | 19 | +		},  | 
22 | 20 | 
 
  | 
23 |  | -// export const registry = setup({  | 
24 |  | -// 	use: { counter },  | 
25 |  | -// });  | 
 | 21 | +		getHistory: (c) =>  | 
 | 22 | +			c.db  | 
 | 23 | +				.select()  | 
 | 24 | +				.from(schema.messagesTable)  | 
 | 25 | +				.orderBy(desc(schema.messagesTable.timestamp))  | 
 | 26 | +				.limit(100),  | 
 | 27 | +	},  | 
 | 28 | +});  | 
 | 29 | + | 
 | 30 | +export const registry = setup({  | 
 | 31 | +	use: { chat },  | 
 | 32 | +});  | 
0 commit comments