Add secure claim secret flow for agent join requests with timing-safe comparison, expiry, and one-time use. Expose machine-readable onboarding manifests and skill index API endpoints. Add company brand color with hex validation, pattern icon generation, and settings page integration. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
25 lines
1.0 KiB
TypeScript
25 lines
1.0 KiB
TypeScript
import { pgTable, uuid, text, integer, timestamp, boolean, uniqueIndex } from "drizzle-orm/pg-core";
|
|
|
|
export const companies = pgTable(
|
|
"companies",
|
|
{
|
|
id: uuid("id").primaryKey().defaultRandom(),
|
|
name: text("name").notNull(),
|
|
description: text("description"),
|
|
status: text("status").notNull().default("active"),
|
|
issuePrefix: text("issue_prefix").notNull().default("PAP"),
|
|
issueCounter: integer("issue_counter").notNull().default(0),
|
|
budgetMonthlyCents: integer("budget_monthly_cents").notNull().default(0),
|
|
spentMonthlyCents: integer("spent_monthly_cents").notNull().default(0),
|
|
requireBoardApprovalForNewAgents: boolean("require_board_approval_for_new_agents")
|
|
.notNull()
|
|
.default(true),
|
|
brandColor: text("brand_color"),
|
|
createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
|
|
updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
|
|
},
|
|
(table) => ({
|
|
issuePrefixUniqueIdx: uniqueIndex("companies_issue_prefix_idx").on(table.issuePrefix),
|
|
}),
|
|
);
|