Skip to main content

Data Access Layer (DAO) Overview

TPNRP Core uses a Data Access Object (DAO) pattern for database operations.

Architecture

The DAO layer provides abstraction over database operations, making it easy to:

  • Switch database backends
  • Maintain consistent data access patterns
  • Separate business logic from data access

Base DAO

All DAOs extend from baseDAO which provides common functionality:

Database.Initialize('TPNRP.db')
DAO = {}
DAO.DB = Database

DAO Services

PlayerDAO

Manages player data operations:

  • Get player by citizen ID
  • Save player data
  • Create new player

InventoryDAO

Manages inventory data operations:

  • Get inventory by citizen ID and type
  • Save inventory data
  • Update inventory items

EquipmentDAO

Manages equipment data operations:

  • Get equipment by citizen ID
  • Save equipment data
  • Update equipment items

Usage Pattern

-- Get player data
local playerData = DAO.player.get(citizenId)

-- Save player
DAO.player.save(player)

-- Get inventory
local inventory = DAO.inventory.get(citizenId, 'player')

-- Save inventory
DAO.inventory.save(inventory)

Database

TPNRP Core uses SQLite by default:

  • Database file: TPNRP.db
  • Automatically initialized when the resource starts