## Summary This finishes the org credit line workflow so it behaves like reserved treasury-backed credit instead of a simple member allowance. ## What changed - reserve org funds immediately when a credit line is assigned - track credit lines with: - approved amount - available amount - outstanding principal - interest rate - amount due - consume reserved credit during store checkout without charging org funds a second time - add credit line repayment through the bank app - sync richer credit line state into org and bank payloads/UI - keep legacy `amount` compatibility mapped to available credit for older consumers ## User-facing behavior - assigning a credit line now reduces available org funds immediately - spending on `credit_line` reduces available credit and creates debt with interest - the bank app now shows outstanding credit debt and allows repayment from personal bank funds - the org treasury view now shows reserved credit and outstanding due totals ## Validation - `cargo fmt` - `npm run build:webui` - `cargo test -p forge-services --quiet` - `cargo test -p forge-server --quiet` ## Follow-up checks - validate in-game that assigning a credit line reduces org funds immediately - validate store checkout with `credit_line` updates available credit and debt correctly - validate bank repayment decreases player bank balance, increases org funds, and reduces amount due Co-authored-by: Jacob Schmidt <innovativestudios@outlook.com> Reviewed-on: #2
90 lines
2.4 KiB
JavaScript
90 lines
2.4 KiB
JavaScript
export default {
|
|
addonName: "cad",
|
|
title: "FORGE CAD",
|
|
logLabel: "CAD UI",
|
|
outputDir: "_site",
|
|
generateIndex: false,
|
|
jsBundles: [
|
|
{
|
|
name: "CAD shared bridge/runtime",
|
|
output: "cad-shared.js",
|
|
sources: ["src/shared.js"],
|
|
},
|
|
{
|
|
name: "CAD topbar app",
|
|
output: "cad-topbar.js",
|
|
sources: ["src/topbar.js"],
|
|
},
|
|
{
|
|
name: "CAD sidepanel app",
|
|
output: "cad-sidepanel.js",
|
|
sources: ["src/sidepanel.js"],
|
|
},
|
|
{
|
|
name: "CAD dispatcher app",
|
|
output: "cad-dispatcher.js",
|
|
sources: [
|
|
"src/dispatcher/formatters.js",
|
|
"src/dispatcher/modals.js",
|
|
"src/dispatcher/render.js",
|
|
"src/dispatcher/index.js",
|
|
],
|
|
},
|
|
{
|
|
name: "CAD bottombar app",
|
|
output: "cad-bottombar.js",
|
|
sources: ["src/bottombar.js"],
|
|
},
|
|
],
|
|
cssBundles: [
|
|
{
|
|
name: "CAD common styles",
|
|
output: "cad-common.css",
|
|
sources: ["src/styles/common.css"],
|
|
},
|
|
{
|
|
name: "CAD topbar styles",
|
|
output: "cad-topbar.css",
|
|
sources: ["src/styles/topbar.css"],
|
|
},
|
|
{
|
|
name: "CAD sidepanel styles",
|
|
output: "cad-sidepanel.css",
|
|
sources: ["src/styles/sidepanel.css"],
|
|
},
|
|
{
|
|
name: "CAD dispatcher styles",
|
|
output: "cad-dispatcher.css",
|
|
sources: ["src/styles/dispatcher.css"],
|
|
},
|
|
{
|
|
name: "CAD bottombar styles",
|
|
output: "cad-bottombar.css",
|
|
sources: ["src/styles/bottombar.css"],
|
|
},
|
|
],
|
|
htmlTemplates: [
|
|
{
|
|
name: "CAD topbar page",
|
|
output: "topbar.html",
|
|
source: "src/topbar.html",
|
|
},
|
|
{
|
|
name: "CAD sidepanel page",
|
|
output: "sidepanel.html",
|
|
source: "src/sidepanel.html",
|
|
},
|
|
{
|
|
name: "CAD dispatcher page",
|
|
output: "dispatcher.html",
|
|
source: "src/dispatcher.html",
|
|
},
|
|
{
|
|
name: "CAD bottombar page",
|
|
output: "bottombar.html",
|
|
source: "src/bottombar.html",
|
|
},
|
|
],
|
|
site: {},
|
|
};
|