import { Interface } from "../schema/mode/interfaces/Interface";

console.log("🔍 DEBUG: Conditional Logic");
console.log("===========================\n");

// Simple test case that should FAIL
const TestSchema = Interface({
    role: "admin|user",
    permissions: "when:role=admin:string[]:string[]?"
});

console.log("Testing conditional validation logic...\n");

// This should PASS (role=admin, permissions=string[])
const adminTest = TestSchema.safeParse({
    role: "admin",
    permissions: ["read", "write"]
});
console.log("1. Admin with permissions:", adminTest.success);
if (!adminTest.success) {
    console.log("   Errors:", adminTest.errors);
}

// This should PASS (role=user, permissions=undefined - optional)
const userNoPermissions = TestSchema.safeParse({
    role: "user"
    // No permissions field
});
console.log("2. User without permissions:", userNoPermissions.success);
if (!userNoPermissions.success) {
    console.log("   Errors:", userNoPermissions.errors);
}

// This should FAIL (role=user, permissions=string[] - not allowed for user)
const userWithPermissions = TestSchema.safeParse({
    role: "user",
    permissions: ["read"] // This should fail because user role shouldn't have permissions
});
console.log("3. User WITH permissions (should FAIL):", userWithPermissions.success);
if (!userWithPermissions.success) {
    console.log("   Errors:", userWithPermissions.errors);
} else {
    console.log("   ❌ ERROR: This should have failed but passed!");
}

// This should FAIL (role=admin, permissions=undefined - admin needs permissions)
const adminNoPermissions = TestSchema.safeParse({
    role: "admin"
    // No permissions - admin should require permissions
});
console.log("4. Admin without permissions (should FAIL):", adminNoPermissions.success);
if (!adminNoPermissions.success) {
    console.log("   Errors:", adminNoPermissions.errors);
} else {
    console.log("   ❌ ERROR: This should have failed but passed!");
}

console.log("\n🎯 Expected Results:");
console.log("1. Admin with permissions: ✅ PASS");
console.log("2. User without permissions: ✅ PASS");
console.log("3. User WITH permissions: ❌ FAIL");
console.log("4. Admin without permissions: ❌ FAIL");

console.log("\nIf tests 3 and 4 are passing, the conditional logic is broken!");
