Accueil › Documentation › Installation · origen_banking
La ressource embarque un migrateur automatique (autodb). Au premier démarrage, il lit database.sql à la racine de la ressource et crée automatiquement les tables manquantes, donc aucun import SQL manuel n’est nécessaire.
Le migrateur fonctionne en mode non destructif : il crée les tables et colonnes manquantes, mais ne supprime jamais ce qui existe dans ta base de données et qui est absent de database.sql.
Si tu préfères créer le schéma manuellement, exécute le SQL suivant avant de démarrer la ressource :
CREATE TABLE `origen_banking_banks` (
`id` VARCHAR(64) NOT NULL,
`name` VARCHAR(128) NOT NULL DEFAULT 'Banco',
`balance` BIGINT NOT NULL DEFAULT 0,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE `origen_banking_accounts` (
`id` VARCHAR(64) NOT NULL,
`owner` VARCHAR(64) NOT NULL,
`name` VARCHAR(128) NOT NULL DEFAULT 'Cuenta',
`balance` BIGINT NOT NULL DEFAULT 0,
`bank` VARCHAR(64) DEFAULT NULL,
`default` TINYINT(1) NOT NULL DEFAULT 0,
`shared` TINYINT(1) NOT NULL DEFAULT 0,
`usersAccess` LONGTEXT DEFAULT '{}',
`loans` LONGTEXT DEFAULT '[]',
`cards` LONGTEXT DEFAULT '[]',
PRIMARY KEY (`id`),
KEY `idx_owner` (`owner`),
KEY `idx_bank` (`bank`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE `origen_banking_transactions` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`account` VARCHAR(64) NOT NULL,
`amount` BIGINT NOT NULL DEFAULT 0,
`type` TINYINT UNSIGNED NOT NULL DEFAULT 0,
`third` VARCHAR(64) DEFAULT NULL,
`detail` VARCHAR(255) DEFAULT NULL,
`initiated_by` VARCHAR(50) NULL DEFAULT 'system',
`channel` VARCHAR(20) NULL DEFAULT 'banco',
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_account` (`account`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE `origen_banking_loans` (
`id` VARCHAR(64) NOT NULL,
`account` VARCHAR(64) NOT NULL,
`bank` VARCHAR(64) NOT NULL,
`owner` VARCHAR(64) NOT NULL DEFAULT '',
`type` VARCHAR(24) NOT NULL DEFAULT 'personal',
`principal` BIGINT NOT NULL,
`interest_rate` DECIMAL(6,3) NOT NULL,
`installments` INT UNSIGNED NOT NULL,
`paid` INT UNSIGNED NOT NULL DEFAULT 0,
`installment_amount` BIGINT NOT NULL,
`frequency` INT UNSIGNED NOT NULL,
`next_payment` BIGINT NOT NULL DEFAULT 0,
`status` VARCHAR(16) NOT NULL DEFAULT 'active',
`collateral` VARCHAR(128) DEFAULT NULL,
`missed` INT UNSIGNED NOT NULL DEFAULT 0,
`pending_disbursement` BIGINT NOT NULL DEFAULT 0,
`reject_reason` VARCHAR(255) DEFAULT NULL,
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_account` (`account`),
KEY `idx_owner` (`owner`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;Ajoute la ressource après ses dépendances :
ensure ox_lib
ensure oxmysql
ensure origen_bankingLes prêts supérieurs à Config.Loans.AutoApproveUnder passent dans une file d’approbation manuelle. Deux voies de permissions indépendantes permettent de les approuver :
Par métier — se configure dans config/main.lua :
Config.Loans.ApprovalJob = 'banker'
Config.Loans.ApprovalGrade = 2Par ACE — ajoute la permission dans ton server.cfg :
add_ace group.admin origen_banking.approve allowToute personne disposant de l’une ou l’autre de ces permissions peut exécuter /loansadmin pour ouvrir la NUI de la banque directement sur la file d’approbation. Définis Config.Loans.ApprovalCommand = '' pour désactiver la commande.
Ouvre config/server/webhooks.lua et renseigne l’URL de ton webhook :
Config.Webhook = {
banking = "https://discord.com/api/webhooks/..."
}Les dépôts, les retraits et les virements sont journalisés. Les virements supérieurs à $50,000 sont envoyés avec une mention @everyone.
Définis la langue de la ressource dans config/main.lua. Les fichiers de traduction se trouvent dans locales/.
Config.Language = 'en' -- 'es' | 'en'