generic src for react admin

This commit is contained in:
2026-04-01 14:22:14 +05:30
parent 4d06859cb0
commit 14dcd19b17
13 changed files with 1137 additions and 7 deletions

69
src_generic/config.ts Normal file
View File

@@ -0,0 +1,69 @@
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],
};