Towniepurchase-credits.ts1 match
1import { Hono } from "npm:hono";
2import Stripe from "npm:stripe";
3import { getUser } from "../database/queries.tsx";
4import { getEnvVarName } from "../../shared/is-prod-branch.ts";
5
Townie.cursorrules2 matches
198```
199βββ backend/
200β βββ database/
201β β βββ migrations.ts # Schema definitions
202β β βββ queries.ts # DB query functions
257```
258259### Database Patterns
260- Run migrations on startup or comment out for performance
261- Change table names when modifying schemas rather than altering
Towniecredit-balance.ts1 match
1import { Hono } from "npm:hono";
2import { getUser, getCreditBalance } from "../database/queries.tsx";
34const app = new Hono();
TownieBRANCH-TODO.md5 matches
14**Goal**: Replace limit checking with credit checking
1516**Database Changes:**
1718* AddedΒ credit\_additionsΒ table with indexes for performance
21
2223**New Functions inΒ /backend/database/queries.tsx:**
2425* getCreditBalance(userId)Β - calculates balance with 50% markup on usage
145--------------------------
146147**Database Schema:**
148149Plain textANTLR4BashCC#CSSCoffeeScriptCMakeDartDjangoDockerEJSErlangGitGoGraphQLGroovyHTMLJavaJavaScriptJSONJSXKotlinLaTeXLessLuaMakefileMarkdownMATLABMarkupObjective-CPerlPHPPowerShell.propertiesProtocol BuffersPythonRRubySass (Sass)Sass (Scss)SchemeSQLShellSwiftSVGTSXTypeScriptWebAssemblyYAMLXML` credit_additions ( id, user_id, created_at, stripe_payment_intent_id, amount, note ) -- Indexes on user_id for both credit_additions and townie_usage `
169**Backend:**
170171* backend/database/schema.tsxΒ - Added credit\_additions table
172
173* backend/database/queries.tsxΒ - New credit functions, removed old limits
174
175* backend/routes/send-message.tsΒ - Updated to use credit checking
val-town-http-mcp-servervalley.txt4 matches
189```
190βββ backend/
191β βββ database/
192β β βββ migrations.ts # Schema definitions
193β β βββ queries.ts # DB query functions
248```
249250### Database Patterns
251- Run migrations on startup or comment out for performance
252- Change table names when modifying schemas rather than altering
315316### SQL Operations
317- **execute-sql** / **sqlite-query**: Execute a SQL query against a SQLite database
318- **execute-sql-batch** / **sqlite-exec**: Execute multiple SQL statements against a SQLite database
319320## Creating Val Town Projects
97```
98βββ backend/
99β βββ database/
100β β βββ migrations.ts
101β β βββ queries.ts
229#### SQL Operations
23021. **execute-sql** / **sqlite-query**
231- Description: Execute a SQL query against a SQLite database
232- Arguments: `statement` (string)
233- Returns: Query results
23423522. **execute-sql-batch** / **sqlite-exec**
236- Description: Execute multiple SQL statements against a SQLite database
237- Arguments: `statements` (array of strings), Optional: `mode` (string: "read" or "write", default: "read")
238- Returns: Results of the batch execution
9server.tool(
10"execute-sql",
11"Execute a SQL query against a SQLite database",
12{
13statement: z.string().describe("SQL statement to execute"),
36server.tool(
37"execute-sql-batch",
38"Execute multiple SQL statements against a SQLite database",
39{
40statements: z.array(z.string()).describe("Array of SQL statements to execute"),
67server.tool(
68"sqlite-query",
69"Execute a SQL query against a SQLite database",
70{
71statement: z.string().describe("SQL statement to execute"),
94server.tool(
95"sqlite-exec",
96"Execute multiple SQL statements against a SQLite database",
97{
98statements: z.array(z.string()).describe("Array of SQL statements to execute"),
172```
173βββ backend/
174β βββ database/
175β β βββ migrations.ts # Schema definitions
176β β βββ queries.ts # DB query functions
234- Handle API calls properly with proper error catching
235236### Database Patterns
237- Run migrations on startup or comment out for performance
238- Change table names when modifying schemas rather than altering
val-to-textvaltown.mdc2 matches
179```
180βββ backend/
181β βββ database/
182β β βββ migrations.ts # Schema definitions
183β β βββ queries.ts # DB query functions
239```
240241### Database Patterns
242- Run migrations on startup or comment out for performance
243- Change table names when modifying schemas rather than altering
untitled-6069main.tsx11 matches
83</a>
84<div class="dropdown-content" id="departmentsDropdown">
85<!-- Dynamically populated from database -->
86</div>
87</div>
117</div>
118<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6" id="webinarsContainer">
119<!-- Dynamically populated from database -->
120</div>
121</section>
131<h3 class="text-xl font-semibold mb-4 text-blue-800">Featured Publications</h3>
132<div class="space-y-6" id="featuredResearch">
133<!-- Dynamically populated from database -->
134</div>
135</div>
137<h3 class="text-xl font-semibold mb-4 text-blue-800">Recent Additions</h3>
138<ul class="space-y-3" id="recentResearch">
139<!-- Dynamically populated from database -->
140</ul>
141</div>
150</div>
151<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6" id="innovationsContainer">
152<!-- Dynamically populated from database -->
153</div>
154</section>
161</div>
162<div class="space-y-6" id="conferencesContainer">
163<!-- Dynamically populated from database -->
164</div>
165</section>
172</div>
173<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6" id="departmentsContainer">
174<!-- Dynamically populated from database -->
175</div>
176</section>
186<h3 class="text-xl font-semibold text-blue-800 mb-4">Optimization Reports</h3>
187<div class="space-y-4" id="supplyChainReports">
188<!-- Dynamically populated from database -->
189</div>
190</div>
192<h3 class="text-xl font-semibold text-blue-800 mb-4">Key Metrics</h3>
193<div class="space-y-6" id="supplyChainMetrics">
194<!-- Dynamically populated from database -->
195</div>
196</div>
209<h3 class="text-xl font-semibold text-blue-800 mb-4">Upcoming Events</h3>
210<div class="space-y-4" id="upcomingEvents">
211<!-- Dynamically populated from database -->
212</div>
213</div>
231<h3 class="text-lg font-semibold text-blue-800 mb-4">This Week</h3>
232<div class="space-y-2 text-sm" id="weekSummary">
233<!-- Dynamically populated from database -->
234</div>
235</div>