1️⃣Installation
Getting Started
Database
CREATE TABLE IF NOT EXISTS `am_rentals` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`citizenid` VARCHAR(255) NOT NULL,
`location_id` VARCHAR(50) NOT NULL,
`model` VARCHAR(50) NOT NULL,
`plate` VARCHAR(8) NOT NULL,
`price_per_day` INT NOT NULL,
`total_price` INT NOT NULL,
`days` INT NOT NULL,
`payment_method` VARCHAR(10) NOT NULL,
`rented_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`expires_at` TIMESTAMP NOT NULL,
`status` ENUM('active', 'expired', 'returned') DEFAULT 'active',
INDEX `idx_citizenid` (`citizenid`),
INDEX `idx_status` (`status`),
INDEX `idx_expires` (`expires_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `am_rental_lost_found` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`citizenid` VARCHAR(255) NOT NULL,
`rental_id` INT DEFAULT NULL,
`model` VARCHAR(50) NOT NULL,
`display_name` VARCHAR(100) DEFAULT NULL,
`plate` VARCHAR(8) NOT NULL,
`items` LONGTEXT NOT NULL,
`recovery_fee` INT NOT NULL,
`returned_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`expires_at` TIMESTAMP NOT NULL,
`recovered` TINYINT(1) DEFAULT 0,
`notified` TINYINT(1) DEFAULT 0,
INDEX `idx_citizenid` (`citizenid`),
INDEX `idx_recovered` (`recovered`),
INDEX `idx_expires` (`expires_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `am_own_rental_listings` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`owner_citizenid` VARCHAR(255) NOT NULL,
`location_id` VARCHAR(50) NOT NULL,
`model` VARCHAR(50) NOT NULL,
`plate` VARCHAR(8) NOT NULL,
`display_name` VARCHAR(100) DEFAULT NULL,
`vehicle_class` VARCHAR(50) DEFAULT NULL,
`price_per_day` INT NOT NULL,
`min_days` INT NOT NULL DEFAULT 1,
`max_days` INT NOT NULL DEFAULT 30,
`status` ENUM('available', 'rented') DEFAULT 'available',
`listed_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
UNIQUE KEY `uk_plate` (`plate`),
INDEX `idx_owner` (`owner_citizenid`),
INDEX `idx_location` (`location_id`),
INDEX `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `am_own_rental_active` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`listing_id` INT NOT NULL,
`renter_citizenid` VARCHAR(255) NOT NULL,
`model` VARCHAR(50) NOT NULL,
`plate` VARCHAR(8) NOT NULL,
`price_per_day` INT NOT NULL,
`total_price` INT NOT NULL,
`days` INT NOT NULL,
`payment_method` VARCHAR(10) NOT NULL,
`rented_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`expires_at` TIMESTAMP NOT NULL,
`status` ENUM('active', 'expired', 'returned') DEFAULT 'active',
INDEX `idx_listing` (`listing_id`),
INDEX `idx_renter` (`renter_citizenid`),
INDEX `idx_status` (`status`),
INDEX `idx_expires` (`expires_at`),
FOREIGN KEY (`listing_id`) REFERENCES `am_own_rental_listings`(`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `am_own_rental_income` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`owner_citizenid` VARCHAR(255) NOT NULL,
`listing_id` INT NOT NULL,
`amount` INT NOT NULL,
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX `idx_owner` (`owner_citizenid`),
INDEX `idx_created` (`created_at`),
FOREIGN KEY (`listing_id`) REFERENCES `am_own_rental_listings`(`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `am_own_rental_wallet` (
`citizenid` VARCHAR(255) PRIMARY KEY,
`available_balance` INT NOT NULL DEFAULT 0,
`total_income` INT NOT NULL DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;Inventory
Last updated