Major architectural refactoring to improve code organization, maintainability, and scalability: - Implement MVC pattern with clear separation of concerns - Organize code into blueprints for different functional areas (main, tenant, admin, api) - Create models layer to encapsulate all database operations - Create services layer for business logic (auth, product, barcode) - Implement application factory pattern for better testability - Add environment-based configuration management - Remove old monolithic app.py and consolidate routes New structure: - app/models/ - Database operations (Tenant, Product, ARField, Settings) - app/services/ - Business logic (Auth, Product, Barcode services) - app/blueprints/ - Controllers organized by function - app/config.py - Environment configurations - run.py - Application entry point All routes remain backward compatible. No changes to API or templates functionality.
21 lines
721 B
Python
21 lines
721 B
Python
import os
|
|
import shutil
|
|
from app import create_app
|
|
from app.models import TenantModel
|
|
|
|
# Create application
|
|
app = create_app(os.environ.get('FLASK_ENV', 'development'))
|
|
|
|
if __name__ == '__main__':
|
|
with app.app_context():
|
|
# Migrate existing data from JSON if needed (backward compatibility)
|
|
# Note: This is for the old database.py migration - keeping for reference
|
|
# but in the new structure, this would be handled differently
|
|
|
|
# Clean up any accidentally created reserved tenants
|
|
deleted_count = TenantModel.cleanup_reserved()
|
|
if deleted_count > 0:
|
|
print(f"Cleaned up {deleted_count} reserved tenant(s)")
|
|
|
|
app.run(port=5555, host="0.0.0.0", debug=True)
|