"""
檢查 Router 是否符合 system_functions 定義
"""
import psycopg2
from psycopg2.extras import Json

conn = psycopg2.connect(
    host="10.1.0.20",
    port=5433,
    database="hr_portal",
    user="admin",
    password="DC1qaz2wsx"
)
cur = conn.cursor()

print("=" * 80)
print("Router Compliance Check")
print("=" * 80)

# 取得所有功能模組定義
cur.execute("""
    SELECT id, code, module_code, module_functions, name
    FROM system_functions
    WHERE function_type = 2
      AND is_active = true
    ORDER BY "order";
""")

functions = cur.fetchall()

print(f"\nTotal functions: {len(functions)}\n")

# 定義操作對應的 HTTP 方法
operation_mapping = {
    'View': 'GET /list',
    'Create': 'POST /',
    'Read': 'GET /{id}',
    'Update': 'PUT/PATCH /{id}',
    'Delete': 'DELETE /{id}',
    'Print': 'GET /{id}/print',
    'File': 'POST /{id}/upload'
}

for func in functions:
    func_id, code, module_code, module_functions, name = func
    
    # module_functions 已經是 Python list
    if not module_functions:
        module_functions = []
    
    print(f"[{func_id}] {name} ({code})")
    print(f"    Module: {module_code}")
    print(f"    Functions: {', '.join(module_functions)}")
    
    if module_functions:
        print(f"    Required endpoints:")
        for op in module_functions:
            if op in operation_mapping:
                endpoint = operation_mapping[op]
                print(f"      - {endpoint}")
    else:
        print(f"    [!] No module_functions defined")
    
    print()

print("=" * 80)
print("Implementation Guide")
print("=" * 80)
print("\nFor each function above, ensure your Router implements:")
print("  1. Create corresponding router file in app/api/v1/")
print("  2. Implement all required endpoints")
print("  3. Register router in app/api/v1/router.py")
print("  4. Use prefix: /api/v1/{module_code} (underscore -> hyphen)")
print("\nExample:")
print("  tenant_departments -> /api/v1/tenant-departments")
print()

cur.close()
conn.close()
