import { AppConfig, ResourceConfig } from "./types/config"; const AccountResource: ResourceConfig = { name: "accounts", label: "Account", pluralLabel: "Accounts", endpoint: "/accounts", primaryKey: "id", fields: { id: { type: "string", label: "ID", readOnly: true }, name: { type: "string", label: "Name", required: true }, type: { type: "enum", label: "Type", required: true, options: ["cash", "bank", "credit_card", "wallet", "other"], }, currency: { type: "string", label: "Currency", required: true }, is_active: { type: "boolean", label: "Active" }, }, }; const TagResource: ResourceConfig = { name: "tags", label: "Tag", pluralLabel: "Tags", endpoint: "/tags", primaryKey: "id", fields: { id: { type: "string", label: "ID", readOnly: true }, name: { type: "string", label: "Name", required: true }, parent_id: { type: "string", label: "Parent ID" }, }, }; const ExpenseResource: ResourceConfig = { name: "expenses", label: "Expense", pluralLabel: "Expenses", endpoint: "/expenses", primaryKey: "id", fields: { id: { type: "string", label: "ID", readOnly: true }, amount: { type: "number", label: "Amount", required: true }, occurred_at: { type: "date", label: "Occurred At", required: true }, payee: { type: "object", label: "Payee", required: true, schema: { name: { type: "string", label: "Name", required: true }, type: { type: "enum", label: "Type", options: ["merchant", "person", "transfer", "other"], }, }, }, account: { type: "string", label: "Account ID", required: true }, tags: { type: "array", label: "Tags" }, created_at: { type: "date", label: "Created At", readOnly: true }, }, }; export const config: AppConfig = { baseUrl: import.meta.env.VITE_API_BASE_URL || "http://localhost:8000", authBaseUrl: import.meta.env.VITE_AUTH_BASE_URL || "http://localhost:8001", resources: [ExpenseResource, AccountResource, TagResource], };