import unittest
from setup_support_booking import build_schema, default_settings


class SupportSchemaTests(unittest.TestCase):
    def test_collections_and_statuses(self):
        schema = build_schema()
        self.assertEqual(set(schema), {"support_settings", "support_slots", "support_bookings"})
        statuses = next(f for f in schema["support_bookings"]["fields"] if f["name"] == "status")["values"]
        self.assertEqual(statuses, ["held", "payment_review", "confirmed", "rejected", "cancelled", "expired", "credit"])

    def test_defaults(self):
        self.assertEqual(default_settings()["default_capacity"], 2)
        self.assertEqual(default_settings()["default_deposit"], 5000)
        self.assertEqual(default_settings()["hold_hours"], 12)
        self.assertEqual(default_settings()["cancel_credit_hours"], 24)


if __name__ == "__main__":
    unittest.main()
