feat: add ui

This commit is contained in:
Max Koon
2025-10-27 06:49:21 -04:00
parent b428ce172d
commit 63670ff3b0
7 changed files with 265 additions and 31 deletions

View File

@@ -93,9 +93,3 @@ export const auditLogs = pgTable("audit_log", {
action: text("action").notNull(),
});
export const plaidAccessTokens = pgTable("plaidAccessToken", {
id: text("id").primaryKey(),
userId: text("user_id").notNull(),
token: text("token").notNull(),
createdAt: timestamp("created_at").notNull().defaultNow(),
});

View File

@@ -1,4 +1,3 @@
import { definePermissions } from "@rocicorp/zero";
import { pgTable, text, boolean, timestamp, uniqueIndex, decimal } from "drizzle-orm/pg-core";
export const users = pgTable(
@@ -46,4 +45,13 @@ export const balance = pgTable("balance", {
name: text("name").notNull(),
createdAt: timestamp("created_at").notNull().defaultNow(),
updatedAt: timestamp("updated_at").notNull().defaultNow(),
})
});
export const plaidAccessTokens = pgTable("plaidAccessToken", {
id: text("id").primaryKey(),
name: text("name").notNull(),
logoUrl: text("logoUrl").notNull(),
userId: text("user_id").notNull(),
token: text("token").notNull(),
createdAt: timestamp("created_at").notNull().defaultNow(),
});

View File

@@ -30,5 +30,11 @@ export const queries = {
return builder.balance
.where('user_id', '=', authData.user.id)
.orderBy('name', 'asc');
}),
getItems: syncedQueryWithContext('getItems', z.tuple([]), (authData: AuthData | null) => {
isLoggedIn(authData);
return builder.plaidAccessTokens
.where('userId', '=', authData.user.id)
.orderBy('createdAt', 'desc');
})
};

View File

@@ -103,6 +103,69 @@ export const schema = {
},
primaryKey: ["id"],
},
plaidAccessTokens: {
name: "plaidAccessTokens",
columns: {
id: {
type: "string",
optional: false,
customType: null as unknown as ZeroCustomType<
ZeroSchema,
"plaidAccessTokens",
"id"
>,
},
name: {
type: "string",
optional: false,
customType: null as unknown as ZeroCustomType<
ZeroSchema,
"plaidAccessTokens",
"name"
>,
},
logoUrl: {
type: "string",
optional: false,
customType: null as unknown as ZeroCustomType<
ZeroSchema,
"plaidAccessTokens",
"logoUrl"
>,
},
userId: {
type: "string",
optional: false,
customType: null as unknown as ZeroCustomType<
ZeroSchema,
"plaidAccessTokens",
"userId"
>,
serverName: "user_id",
},
token: {
type: "string",
optional: false,
customType: null as unknown as ZeroCustomType<
ZeroSchema,
"plaidAccessTokens",
"token"
>,
},
createdAt: {
type: "number",
optional: true,
customType: null as unknown as ZeroCustomType<
ZeroSchema,
"plaidAccessTokens",
"createdAt"
>,
serverName: "created_at",
},
},
primaryKey: ["id"],
serverName: "plaidAccessToken",
},
plaidLink: {
name: "plaidLink",
columns: {
@@ -351,6 +414,11 @@ export type Schema = typeof schema;
* This type is auto-generated from your Drizzle schema definition.
*/
export type Balance = Row<Schema["tables"]["balance"]>;
/**
* Represents a row from the "plaidAccessTokens" table.
* This type is auto-generated from your Drizzle schema definition.
*/
export type PlaidAccessToken = Row<Schema["tables"]["plaidAccessTokens"]>;
/**
* Represents a row from the "plaidLink" table.
* This type is auto-generated from your Drizzle schema definition.