One Hat Cyber Team
Your IP :
216.73.216.55
Server IP :
5.189.175.239
Server :
Linux panel.gemx-ai.com 5.14.0-570.19.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jun 4 04:00:24 EDT 2025 x86_64
Server Software :
LiteSpeed
PHP Version :
8.2.28
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
farmersapp
/
loans.farmersapp.store
/
config
/
Edit File:
constants.php
<?php /** * System Constants * Farmers Loan Management System */ // ============================================= // APPLICATION CONSTANTS // ============================================= // Application Information define('APP_NAME', 'Farmers Loan Management System'); define('APP_VERSION', '1.0.0'); define('APP_BUILD', '2024.01.001'); define('APP_AUTHOR', 'Farmers Loan Management Team'); define('APP_SUPPORT_EMAIL', 'support@farmersloan.com'); // Path Constants define('BASE_URL', 'http://' . $_SERVER['HTTP_HOST'] . str_replace('/index.php', '', $_SERVER['SCRIPT_NAME'])); define('ASSETS_URL', BASE_URL . '/assets'); define('UPLOADS_URL', BASE_URL . '/uploads'); define('UPLOADS_PATH', APP_ROOT . '/uploads'); // ============================================= // USER ROLES AND PERMISSIONS // ============================================= // User Role IDs (must match database) define('ROLE_ADMIN', 1); define('ROLE_LOAN_OFFICER', 2); define('ROLE_BRANCH_MANAGER', 3); define('ROLE_BORROWER', 4); // Role Names define('ROLE_NAME_ADMIN', 'Administrator'); define('ROLE_NAME_LOAN_OFFICER', 'Loan Officer'); define('ROLE_NAME_BRANCH_MANAGER', 'Branch Manager'); define('ROLE_NAME_BORROWER', 'Borrower'); // Permission Groups define('PERMISSION_GROUP_USERS', 'users'); define('PERMISSION_GROUP_BORROWERS', 'borrowers'); define('PERMISSION_GROUP_LOANS', 'loans'); define('PERMISSION_GROUP_REPAYMENTS', 'repayments'); define('PERMISSION_GROUP_REPORTS', 'reports'); define('PERMISSION_GROUP_SETTINGS', 'settings'); define('PERMISSION_GROUP_DASHBOARD', 'dashboard'); // Specific Permissions define('PERMISSION_VIEW_DASHBOARD', 'view_dashboard'); define('PERMISSION_MANAGE_USERS', 'manage_users'); define('PERMISSION_MANAGE_BORROWERS', 'manage_borrowers'); define('PERMISSION_MANAGE_LOANS', 'manage_loans'); define('PERMISSION_APPROVE_LOANS', 'approve_loans'); define('PERMISSION_DISBURSE_LOANS', 'disburse_loans'); define('PERMISSION_PROCESS_REPAYMENTS', 'process_repayments'); define('PERMISSION_VIEW_REPORTS', 'view_reports'); define('PERMISSION_MANAGE_SETTINGS', 'manage_settings'); define('PERMISSION_EXPORT_DATA', 'export_data'); define('PERMISSION_VIEW_AUDIT_LOGS', 'view_audit_logs'); // ============================================= // LOAN MANAGEMENT CONSTANTS // ============================================= // Loan Status define('LOAN_STATUS_PENDING', 'pending'); define('LOAN_STATUS_APPROVED', 'approved'); define('LOAN_STATUS_REJECTED', 'rejected'); define('LOAN_STATUS_DISBURSED', 'disbursed'); define('LOAN_STATUS_ACTIVE', 'active'); define('LOAN_STATUS_COMPLETED', 'completed'); define('LOAN_STATUS_DEFAULTED', 'defaulted'); define('LOAN_STATUS_WRITTEN_OFF', 'written_off'); // Loan Status Colors (for UI) define('LOAN_STATUS_COLOR_PENDING', 'warning'); define('LOAN_STATUS_COLOR_APPROVED', 'info'); define('LOAN_STATUS_COLOR_REJECTED', 'danger'); define('LOAN_STATUS_COLOR_DISBURSED', 'primary'); define('LOAN_STATUS_COLOR_ACTIVE', 'success'); define('LOAN_STATUS_COLOR_COMPLETED', 'secondary'); define('LOAN_STATUS_COLOR_DEFAULTED', 'dark'); define('LOAN_STATUS_COLOR_WRITTEN_OFF', 'dark'); // Loan Product Types define('LOAN_TYPE_AGRICULTURE', 'agriculture'); define('LOAN_TYPE_LIVESTOCK', 'livestock'); define('LOAN_TYPE_EQUIPMENT', 'equipment'); define('LOAN_TYPE_EMERGENCY', 'emergency'); define('LOAN_TYPE_EDUCATION', 'education'); define('LOAN_TYPE_BUSINESS', 'business'); define('LOAN_TYPE_OTHER', 'other'); // Interest Types define('INTEREST_TYPE_FLAT', 'flat'); define('INTEREST_TYPE_REDUCING', 'reducing'); define('INTEREST_TYPE_COMPOUND', 'compound'); // Term Units define('TERM_UNIT_DAYS', 'days'); define('TERM_UNIT_WEEKS', 'weeks'); define('TERM_UNIT_MONTHS', 'months'); define('TERM_UNIT_YEARS', 'years'); // Payment Frequencies define('PAYMENT_FREQUENCY_DAILY', 'daily'); define('PAYMENT_FREQUENCY_WEEKLY', 'weekly'); define('PAYMENT_FREQUENCY_BIWEEKLY', 'bi-weekly'); define('PAYMENT_FREQUENCY_MONTHLY', 'monthly'); define('PAYMENT_FREQUENCY_QUARTERLY', 'quarterly'); define('PAYMENT_FREQUENCY_YEARLY', 'yearly'); // ============================================= // BORROWER MANAGEMENT CONSTANTS // ============================================= // Borrower Status define('BORROWER_STATUS_ACTIVE', 'active'); define('BORROWER_STATUS_INACTIVE', 'inactive'); define('BORROWER_STATUS_PENDING', 'pending'); define('BORROWER_STATUS_BLACKLISTED', 'blacklisted'); // Gender define('GENDER_MALE', 'male'); define('GENDER_FEMALE', 'female'); define('GENDER_OTHER', 'other'); // Marital Status define('MARITAL_SINGLE', 'single'); define('MARITAL_MARRIED', 'married'); define('MARITAL_DIVORCED', 'divorced'); define('MARITAL_WIDOWED', 'widowed'); // Employment Status define('EMPLOYMENT_EMPLOYED', 'employed'); define('EMPLOYMENT_SELF_EMPLOYED', 'self_employed'); define('EMPLOYMENT_UNEMPLOYED', 'unemployed'); define('EMPLOYMENT_RETIRED', 'retired'); // Risk Categories define('RISK_CATEGORY_LOW', 'low'); define('RISK_CATEGORY_MEDIUM', 'medium'); define('RISK_CATEGORY_HIGH', 'high'); // Credit Score Ranges define('CREDIT_SCORE_POOR', 300); define('CREDIT_SCORE_FAIR', 580); define('CREDIT_SCORE_GOOD', 670); define('CREDIT_SCORE_VERY_GOOD', 740); define('CREDIT_SCORE_EXCELLENT', 800); // ============================================= // FINANCIAL CONSTANTS // ============================================= // Payment Methods define('PAYMENT_METHOD_CASH', 'cash'); define('PAYMENT_METHOD_BANK_TRANSFER', 'bank_transfer'); define('PAYMENT_METHOD_MOBILE_MONEY', 'mobile_money'); define('PAYMENT_METHOD_CHEQUE', 'cheque'); define('PAYMENT_METHOD_CARD', 'card'); define('PAYMENT_METHOD_OTHER', 'other'); // Transaction Types define('TRANSACTION_TYPE_DISBURSEMENT', 'disbursement'); define('TRANSACTION_TYPE_REPAYMENT', 'repayment'); define('TRANSACTION_TYPE_FEE', 'fee'); define('TRANSACTION_TYPE_PENALTY', 'penalty'); define('TRANSACTION_TYPE_INTEREST', 'interest'); define('TRANSACTION_TYPE_ADJUSTMENT', 'adjustment'); define('TRANSACTION_TYPE_REFUND', 'refund'); // Currency define('DEFAULT_CURRENCY', 'MWK'); define('DEFAULT_CURRENCY_SYMBOL', 'MK'); define('DEFAULT_CURRENCY_CODE', 'MWK'); // ============================================= // SYSTEM CONSTANTS // ============================================= // File Upload define('MAX_UPLOAD_SIZE', 5242880); // 5MB in bytes define('ALLOWED_FILE_TYPES', 'jpg,jpeg,png,pdf,doc,docx,xls,xlsx'); define('MAX_FILE_UPLOADS', 10); // Pagination define('ITEMS_PER_PAGE', 20); define('ITEMS_PER_PAGE_OPTIONS', '10,20,50,100'); // Session define('SESSION_TIMEOUT', 1800); // 30 minutes in seconds define('SESSION_REMEMBER_ME', 2592000); // 30 days in seconds // Security define('PASSWORD_MIN_LENGTH', 8); define('PASSWORD_REQUIRE_UPPERCASE', true); define('PASSWORD_REQUIRE_LOWERCASE', true); define('PASSWORD_REQUIRE_NUMBER', true); define('PASSWORD_REQUIRE_SPECIAL', true); define('MAX_LOGIN_ATTEMPTS', 5); define('LOGIN_LOCKOUT_TIME', 900); // 15 minutes in seconds // ============================================= // NOTIFICATION CONSTANTS // ============================================= // Notification Types define('NOTIFICATION_TYPE_INFO', 'info'); define('NOTIFICATION_TYPE_SUCCESS', 'success'); define('NOTIFICATION_TYPE_WARNING', 'warning'); define('NOTIFICATION_TYPE_ERROR', 'error'); define('NOTIFICATION_TYPE_SYSTEM', 'system'); // Notification Events define('NOTIFICATION_LOAN_APPLIED', 'loan_applied'); define('NOTIFICATION_LOAN_APPROVED', 'loan_approved'); define('NOTIFICATION_LOAN_DISBURSED', 'loan_disbursed'); define('NOTIFICATION_REPAYMENT_DUE', 'repayment_due'); define('NOTIFICATION_REPAYMENT_OVERDUE', 'repayment_overdue'); define('NOTIFICATION_REPAYMENT_RECEIVED', 'repayment_received'); define('NOTIFICATION_PASSWORD_CHANGED', 'password_changed'); define('NOTIFICATION_PROFILE_UPDATED', 'profile_updated'); define('NOTIFICATION_SYSTEM_ALERT', 'system_alert'); // ============================================= // COLLATERAL CONSTANTS // ============================================= // Collateral Types define('COLLATERAL_TYPE_LAND', 'land'); define('COLLATERAL_TYPE_VEHICLE', 'vehicle'); define('COLLATERAL_TYPE_EQUIPMENT', 'equipment'); define('COLLATERAL_TYPE_LIVESTOCK', 'livestock'); define('COLLATERAL_TYPE_BUILDING', 'building'); define('COLLATERAL_TYPE_JEWELRY', 'jewelry'); define('COLLATERAL_TYPE_OTHER', 'other'); // Collateral Status define('COLLATERAL_STATUS_ACTIVE', 'active'); define('COLLATERAL_STATUS_RELEASED', 'released'); define('COLLATERAL_STATUS_SEIZED', 'seized'); // Collateral Condition define('COLLATERAL_CONDITION_EXCELLENT', 'excellent'); define('COLLATERAL_CONDITION_GOOD', 'good'); define('COLLATERAL_CONDITION_FAIR', 'fair'); define('COLLATERAL_CONDITION_POOR', 'poor'); // ============================================= // DOCUMENT CONSTANTS // ============================================= // Document Types define('DOCUMENT_TYPE_NATIONAL_ID', 'national_id'); define('DOCUMENT_TYPE_PASSPORT', 'passport'); define('DOCUMENT_TYPE_UTILITY_BILL', 'utility_bill'); define('DOCUMENT_TYPE_BANK_STATEMENT', 'bank_statement'); define('DOCUMENT_TYPE_PAY_SLIP', 'pay_slip'); define('DOCUMENT_TYPE_TAX_RETURN', 'tax_return'); define('DOCUMENT_TYPE_BUSINESS_LICENSE', 'business_license'); define('DOCUMENT_TYPE_LAND_TITLE', 'land_title'); define('DOCUMENT_TYPE_OTHER', 'other'); // Document Status define('DOCUMENT_STATUS_PENDING', 'pending'); define('DOCUMENT_STATUS_VERIFIED', 'verified'); define('DOCUMENT_STATUS_REJECTED', 'rejected'); // ============================================= // REPORTS CONSTANTS // ============================================= // Report Types define('REPORT_TYPE_PORTFOLIO', 'portfolio'); define('REPORT_TYPE_COLLECTIONS', 'collections'); define('REPORT_TYPE_PERFORMANCE', 'performance'); define('REPORT_TYPE_FINANCIAL', 'financial'); define('REPORT_TYPE_BORROWER', 'borrower'); define('REPORT_TYPE_LOAN', 'loan'); define('REPORT_TYPE_CUSTOM', 'custom'); // Report Formats define('REPORT_FORMAT_PDF', 'pdf'); define('REPORT_FORMAT_EXCEL', 'excel'); define('REPORT_FORMAT_CSV', 'csv'); define('REPORT_FORMAT_HTML', 'html'); // ============================================= // AUDIT LOG CONSTANTS // ============================================= // Audit Actions define('AUDIT_ACTION_CREATE', 'create'); define('AUDIT_ACTION_UPDATE', 'update'); define('AUDIT_ACTION_DELETE', 'delete'); define('AUDIT_ACTION_LOGIN', 'login'); define('AUDIT_ACTION_LOGOUT', 'logout'); define('AUDIT_ACTION_PASSWORD_CHANGE', 'password_change'); define('AUDIT_ACTION_LOAN_APPLICATION', 'loan_application'); define('AUDIT_ACTION_LOAN_APPROVAL', 'loan_approval'); define('AUDIT_ACTION_LOAN_DISBURSEMENT', 'loan_disbursement'); define('AUDIT_ACTION_REPAYMENT', 'repayment'); define('AUDIT_ACTION_SETTINGS_CHANGE', 'settings_change'); // ============================================= // EMAIL AND SMS CONSTANTS // ============================================= // Email Templates define('EMAIL_TEMPLATE_WELCOME', 'welcome'); define('EMAIL_TEMPLATE_PASSWORD_RESET', 'password_reset'); define('EMAIL_TEMPLATE_LOAN_APPLICATION', 'loan_application'); define('EMAIL_TEMPLATE_LOAN_APPROVED', 'loan_approved'); define('EMAIL_TEMPLATE_LOAN_DISBURSED', 'loan_disbursed'); define('EMAIL_TEMPLATE_REPAYMENT_REMINDER', 'repayment_reminder'); define('EMAIL_TEMPLATE_REPAYMENT_OVERDUE', 'repayment_overdue'); define('EMAIL_TEMPLATE_REPAYMENT_RECEIVED', 'repayment_received'); // SMS Templates define('SMS_TEMPLATE_WELCOME', 'welcome'); define('SMS_TEMPLATE_OTP', 'otp'); define('SMS_TEMPLATE_LOAN_APPROVED', 'loan_approved'); define('SMS_TEMPLATE_REPAYMENT_REMINDER', 'repayment_reminder'); define('SMS_TEMPLATE_REPAYMENT_OVERDUE', 'repayment_overdue'); define('SMS_TEMPLATE_REPAYMENT_RECEIVED', 'repayment_received'); // ============================================= // DATE AND TIME CONSTANTS // ============================================= // Date Formats define('DATE_FORMAT_SQL', 'Y-m-d'); define('DATE_FORMAT_DISPLAY', 'd/m/Y'); define('DATE_FORMAT_FULL', 'F j, Y'); define('DATETIME_FORMAT_SQL', 'Y-m-d H:i:s'); define('DATETIME_FORMAT_DISPLAY', 'd/m/Y H:i'); define('DATETIME_FORMAT_FULL', 'F j, Y g:i A'); // Time Constants define('SECONDS_IN_MINUTE', 60); define('SECONDS_IN_HOUR', 3600); define('SECONDS_IN_DAY', 86400); define('SECONDS_IN_WEEK', 604800); define('SECONDS_IN_MONTH', 2592000); // 30 days define('SECONDS_IN_YEAR', 31536000); // 365 days // ============================================= // VALIDATION CONSTANTS // ============================================= // Validation Rules define('VALIDATION_REQUIRED', 'required'); define('VALIDATION_EMAIL', 'email'); define('VALIDATION_NUMERIC', 'numeric'); define('VALIDATION_INTEGER', 'integer'); define('VALIDATION_MIN', 'min'); define('VALIDATION_MAX', 'max'); define('VALIDATION_MIN_LENGTH', 'min_length'); define('VALIDATION_MAX_LENGTH', 'max_length'); define('VALIDATION_MATCH', 'match'); define('VALIDATION_UNIQUE', 'unique'); define('VALIDATION_DATE', 'date'); define('VALIDATION_PHONE', 'phone'); define('VALIDATION_NATIONAL_ID', 'national_id'); // ============================================= // API CONSTANTS // ============================================= // API Response Codes define('API_SUCCESS', 200); define('API_CREATED', 201); define('API_BAD_REQUEST', 400); define('API_UNAUTHORIZED', 401); define('API_FORBIDDEN', 403); define('API_NOT_FOUND', 404); define('API_METHOD_NOT_ALLOWED', 405); define('API_VALIDATION_ERROR', 422); define('API_INTERNAL_ERROR', 500); // API Rate Limiting define('API_RATE_LIMIT', 100); // Requests per hour define('API_RATE_LIMIT_WINDOW', 3600); // 1 hour in seconds // ============================================= // DATABASE CONSTANTS // ============================================= // Table Names (for reference) define('TABLE_USERS', 'users'); define('TABLE_ROLES', 'roles'); define('TABLE_PERMISSIONS', 'permissions'); define('TABLE_ROLE_PERMISSIONS', 'role_permissions'); define('TABLE_BRANCHES', 'branches'); define('TABLE_BORROWERS', 'borrowers'); define('TABLE_BORROWER_DOCUMENTS', 'borrower_documents'); define('TABLE_BORROWER_CREDIT_HISTORY', 'borrower_credit_history'); define('TABLE_LOAN_PRODUCTS', 'loan_products'); define('TABLE_LOANS', 'loans'); define('TABLE_LOAN_INSTALLMENTS', 'loan_installments'); define('TABLE_LOAN_GUARANTORS', 'loan_guarantors'); define('TABLE_LOAN_COLLATERAL', 'loan_collateral'); define('TABLE_REPAYMENTS', 'repayments'); define('TABLE_PAYMENT_METHODS', 'payment_methods'); define('TABLE_TRANSACTIONS', 'transactions'); define('TABLE_SAVINGS_ACCOUNTS', 'savings_accounts'); define('TABLE_SAVINGS_PRODUCTS', 'savings_products'); define('TABLE_SAVINGS_TRANSACTIONS', 'savings_transactions'); define('TABLE_AUDIT_LOGS', 'audit_logs'); define('TABLE_NOTIFICATIONS', 'notifications'); define('TABLE_SETTINGS', 'settings'); define('TABLE_EMAIL_TEMPLATES', 'email_templates'); define('TABLE_SMS_TEMPLATES', 'sms_templates'); define('TABLE_DOCUMENTS', 'documents'); // ============================================= // UI AND THEME CONSTANTS // ============================================= // Theme Colors define('COLOR_PRIMARY', '#4e73df'); define('COLOR_SUCCESS', '#1cc88a'); define('COLOR_INFO', '#36b9cc'); define('COLOR_WARNING', '#f6c23e'); define('COLOR_DANGER', '#e74a3b'); define('COLOR_SECONDARY', '#858796'); define('COLOR_LIGHT', '#f8f9fc'); define('COLOR_DARK', '#5a5c69'); // Theme Settings define('THEME_DEFAULT', 'default'); define('THEME_DARK', 'dark'); define('THEME_LIGHT', 'light'); // ============================================= // SYSTEM LIMITS AND THRESHOLDS // ============================================= // Loan Limits define('MAX_LOAN_AMOUNT', 10000000); // 10 million define('MAX_LOAN_TERM', 60); // 60 months define('MAX_LOANS_PER_BORROWER', 3); // Borrower Limits define('MAX_BORROWERS_PER_OFFICER', 100); define('MAX_GUARANTORS_PER_LOAN', 3); // Financial Limits define('MIN_REPAYMENT_AMOUNT', 100); define('MAX_PENALTY_RATE', 10); // 10% define('MAX_INTEREST_RATE', 30); // 30% // System Limits define('MAX_BRANCHES', 50); define('MAX_USERS', 1000); define('MAX_BORROWERS', 10000); define('MAX_LOANS', 50000); // ============================================= // ENVIRONMENT SPECIFIC CONSTANTS // ============================================= // Development Environment if (ENVIRONMENT === 'development') { define('DEBUG_MODE', true); define('LOG_LEVEL', 'debug'); define('CACHE_ENABLED', false); define('COMPRESSION_ENABLED', false); // Development URLs define('API_BASE_URL', 'http://localhost/farmers-loan-system/api/'); define('CDN_URL', 'http://localhost/farmers-loan-system/assets/'); } // Production Environment else { define('DEBUG_MODE', false); define('LOG_LEVEL', 'error'); define('CACHE_ENABLED', true); define('COMPRESSION_ENABLED', true); // Production URLs (should be configured in production) define('API_BASE_URL', 'https://api.farmersloan.com/'); define('CDN_URL', 'https://cdn.farmersloan.com/'); } // ============================================= // MISC CONSTANTS // ============================================= // Default Values define('DEFAULT_COUNTRY', 'Malawi'); define('DEFAULT_COUNTRY_CODE', 'MW'); define('DEFAULT_PHONE_CODE', '+265'); define('DEFAULT_LANGUAGE', 'en'); define('DEFAULT_TIMEZONE', 'Africa/Blantyre'); // System Flags define('SYSTEM_MAINTENANCE', false); define('SYSTEM_REGISTRATION_OPEN', true); define('SYSTEM_LOAN_APPLICATIONS_OPEN', true); // Version Control define('MIN_PHP_VERSION', '7.4.0'); define('MIN_MYSQL_VERSION', '5.7.0'); define('MIN_APACHE_VERSION', '2.4.0'); // ============================================= // END OF CONSTANTS // ============================================= // Make constants available globally return [ 'app' => [ 'name' => APP_NAME, 'version' => APP_VERSION, 'environment' => ENVIRONMENT ], 'paths' => [ 'base_url' => BASE_URL, 'assets_url' => ASSETS_URL, 'uploads_url' => UPLOADS_URL ], 'database' => [ 'tables' => [ 'users' => TABLE_USERS, 'borrowers' => TABLE_BORROWERS, 'loans' => TABLE_LOANS ] ] ]; ?>
Simpan