Início › Documentação › Instalação · origen_banking
O recurso inclui um migrador automático (autodb). No primeiro arranque lê o database.sql a partir da raiz do recurso e cria automaticamente as tabelas em falta, pelo que não é necessário importar SQL manualmente.
O migrador funciona em modo não destrutivo: cria as tabelas e colunas em falta, mas nunca elimina nada que exista na tua base de dados e não esteja no database.sql.
Se preferires criar o esquema manualmente, executa o seguinte SQL antes de arrancares o recurso:
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;Adiciona o recurso depois das suas dependências:
ensure ox_lib
ensure oxmysql
ensure origen_bankingOs empréstimos acima de Config.Loans.AutoApproveUnder passam para uma fila de aprovação manual. Existem dois caminhos de permissões independentes para os aprovar:
Por trabalho — configura-se em config/main.lua:
Config.Loans.ApprovalJob = 'banker'
Config.Loans.ApprovalGrade = 2Por ACE — adiciona a permissão no teu server.cfg:
add_ace group.admin origen_banking.approve allowQuem tiver qualquer uma das permissões pode executar /loansadmin para abrir a NUI do banco diretamente na fila de aprovação. Define Config.Loans.ApprovalCommand = '' para desativar o comando.
Abre config/server/webhooks.lua e define o URL do teu webhook:
Config.Webhook = {
banking = "https://discord.com/api/webhooks/..."
}Os depósitos, os levantamentos e as transferências ficam registados. As transferências acima de $50,000 são enviadas com uma menção @everyone.
Define o idioma do recurso em config/main.lua. Os ficheiros de tradução estão em locales/.
Config.Language = 'en' -- 'es' | 'en'