Início › Documentação › Exports · origen_banking

Exports · origen_banking

Todos os exports são registados sob o nome de recurso origen_banking e são exclusivamente do servidor.


Invólucro de resposta

A maioria dos exports de contas devolve um invólucro estruturado em vez de um booleano simples:

lua
-- success
{ success = true, data = { ... }, meta = { message = { key = '...', args = { ... } } } }
 
-- failure
{ success = false, error = { key = 'errors.insufficient_balance', args = { ... } } }

O campo key é uma chave de idioma de locales/*.json, para que o recurso que chama possa traduzir a mensagem por si próprio.

Os exports de contas de trabalho da camada de compatibilidade usam um invólucro mais simples: { success = true, data = { balance = number } } ou { success = false, error = 'insufficient_balance' }, em que error é uma cadeia de texto simples.


Contas de trabalho e de sociedade

getJobAccountBalance(jobName) → number, string|nil

Devolve o saldo atual de uma conta de trabalho. Só de leitura: nunca cria a conta.

lua
local balance, err = exports['origen_banking']:getJobAccountBalance('mechanic')
Parâmetro Tipo Descrição
jobName string Nome exato do titular guardado na base de dados, p. ex. 'ambulance'

Devolve 0 e um motivo de erro ('invalid_job_name' ou 'account_not_found') quando a conta não existe.


depositJobAccount(jobName, amount, detail) → table

Adiciona dinheiro a uma conta de trabalho. Cria a conta automaticamente se ainda não existir.

lua
local res = exports['origen_banking']:depositJobAccount('mechanic', 2500, 'Repair job')
if res.success then print(res.data.balance) end
Parâmetro Tipo Descrição
jobName string Nome do trabalho / sociedade
amount number Inteiro positivo
detail string Etiqueta de auditoria opcional mostrada no histórico de transações

Erros: invalid_amount, invalid_job_name.


withdrawJobAccount(jobName, amount, detail) → table

Retira dinheiro de uma conta de trabalho. Nunca cria a conta automaticamente.

lua
local res = exports['origen_banking']:withdrawJobAccount('mechanic', 500, 'Parts purchase')

Erros: invalid_amount, account_not_found, insufficient_balance.


getAccountMoney(accountName) → number

Alias legado de getJobAccountBalance. Devolve apenas o saldo, ou 0.

addAccountMoney(accountName, amount) → boolean

Depósito legado. Cria a conta automaticamente. Regista a transação como Society income.

removeAccountMoney(accountName, amount) → boolean

Levantamento legado. Devolve false quando a conta não existe ou o saldo é insuficiente.


Contas

newAccount(data) → Account

Cria um objeto de conta. Se data.id for omitido, é gerado um novo IBAN e a conta é guardada de imediato.

Campo Tipo Descrição
owner string ID de cidadão, nome do trabalho ou nome da gangue
name string Nome a mostrar
balance number Saldo inicial. Por omissão 0
default boolean Marca-a como a conta principal do jogador
shared boolean Marca-a como conta partilhada de trabalho / gangue
bank string ID opcional do banco a que a conta pertence

GetAccountById(id) → Account | nil

Devolve a conta a partir da cache em memória e, se não estiver lá, procura-a na base de dados.

lua
local account = exports['origen_banking']:GetAccountById('1234567890123456')

GetAccountAccessByCitizenid(citizenid) → table

Devolve a lista de acessos em bruto de um cidadão: um array de { accountId, permission }. A permissão é 'owner', 'manager' ou 'operator'.


GetAccountsInfoByCitizenId(citizenid) → table

Devolve a lista completa de contas de um cidadão, enriquecida para a interface: membros, tipo de conta ('personal' / 'shared'), a marca de principal da framework e o saldo em tempo real. As contas de trabalho e de gangue a que o jogador tem acesso nesse momento são acrescentadas em tempo de execução.

Este export resolve o acesso a trabalhos e gangues em cada chamada e pode criar a conta partilhada se ainda não existir. Não o chames dentro de um ciclo.


CreateInitialAccount(citizenid) → string

Cria a conta principal de um cidadão e devolve o ID de conta gerado.


LoadAccountsForPlayer(citizenid)

Pré-carrega em memória todas as contas de um cidadão ou partilhadas com ele. As contas são carregadas a pedido quando o jogador se liga, pelo que só é necessário para operações com jogadores desligados.


Pagamentos

A «conta ativa» é a conta selecionada nesse momento nos metadados activeAccount do jogador. A «conta por omissão» é a marcada como default na base de dados.

GetActiveAccBalance(source) → number | nil

Devolve o saldo da conta ativa do jogador. Fica em cache durante 500 ms.


PayWithAccId(accountId, amount, detail) → table

Cobra a uma conta específica pelo seu ID.

Parâmetro Tipo Descrição
accountId string IBAN da conta de destino
amount number Montante a cobrar
detail string Motivo mostrado no histórico de transações

Erros: errors.account_not_found, errors.insufficient_balance.


PayWithActiveAcc(source, amount, detail) → table

Cobra à conta ativa do jogador.

lua
local res = exports['origen_banking']:PayWithActiveAcc(source, 150, 'Parking fee')
if not res.success then print(res.error.key) end

PayFromDefaultAcc(source, amount, detail) → table

Cobra à conta por omissão do jogador. Quando essa conta é a principal da framework, o saldo é debitado do dinheiro bancário da framework em vez da base de dados.


ReceiveToActiveAcc(source, amount, detail) → table

Credita a conta ativa do jogador.


ReceiveToDefaultAcc(source, amount, detail) → table

Credita a conta por omissão do jogador. As contas principais da framework são creditadas diretamente no dinheiro bancário da framework.


SetActiveAccBalance(source, amount) → boolean

Substitui o saldo da conta ativa do jogador. Não é registada nenhuma transação.


SetDefaultAccBalance(source, amount) → boolean

Substitui o saldo da conta por omissão do jogador. Se for a principal da framework, a diferença é aplicada ao dinheiro bancário da framework.

Ambos os setters ignoram o histórico de transações e as verificações de permissões. Usa-os apenas para ferramentas de administração ou de migração.


Empréstimos

CreateLoan(accountId, typeKey, amount, term, collateral) → table

Cria um empréstimo sobre uma conta, aplicando todas as validações do servidor.

Parâmetro Tipo Descrição
accountId string Conta que recebe o desembolso
typeKey string Chave do tipo de empréstimo de Config.Loans.Types, p. ex. 'personal'
amount number Capital
term number Número de prestações; tem de estar em allowedTerms
collateral string Referência do bem. Obrigatória quando o tipo define requiresCollateral
lua
local res = exports['origen_banking']:CreateLoan(accountId, 'personal', 15000, 12)
if res.success then print(res.loanId) end

Erros: disabled, account_not_found, invalid_type, invalid_term.


GetPlayerLoans(citizenId) → table

Devolve todos os empréstimos de um cidadão, com a forma em que a interface os recebe.


HasOverdueLoan(citizenId) → boolean

Devolve true quando o cidadão tem um empréstimo em atraso ou em incumprimento. Útil para restringir compras a crédito em stands, aluguer e recursos semelhantes.

lua
if exports['origen_banking']:HasOverdueLoan(citizenid) then
    -- deny the financed purchase
end

Bancos

newBank(data) → Bank

Cria uma entidade bancária.

GetBankById(id) → Bank | nil

Devolve um banco a partir da cache ou da base de dados.


Cartões

newCard(data) → Card

Cria um cartão associado a uma conta.

GetCardById(id) → Card | nil

Devolve um cartão a partir da cache ou da base de dados.