71 lines
2.1 KiB
TypeScript
71 lines
2.1 KiB
TypeScript
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" },
|
|
avatar: { type: "image", label: "Account Icon" },
|
|
},
|
|
};
|
|
|
|
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: "datetime", 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: "datetime", 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],
|
|
};
|