from tarot import Tarot, letter, number, kaballah
from temporal import ThalemaClock
from datetime import datetime
from utils import Personality, MBTIType

# Tarot core functionality
card = Tarot.deck.card(3)
print(f"Card: {card}")

# Spreads - now under Tarot.deck.card.spread()
print("\n" + Tarot.deck.card.spread("Celtic Cross"))

# Temporal functionality (separate module)
clock = ThalemaClock(datetime.now())
print(f"\nClock: {clock}")
print(Tarot.deck.card.filter(suit="Cups"))

# Top-level namespaces with pretty printing
print("\n" + "=" * 60)
print("Letter Namespace:")
print(letter)

print("\n" + "=" * 60)
print("Number Namespace:")
print(number)

print("\nDigital root of 343:", number.digital_root(343))

print("\n" + "=" * 60)
print("Kaballah - Tree of Life:")
print(kaballah.Tree)

print("\n" + "=" * 60)
print("Kaballah - Cube of Space:")
print(kaballah.Cube.wall.display_filter(side="Below"))

# Filtering examples
print("\n" + "=" * 60)

print(Tarot.deck.card.filter(type='court'))

# MBTI Personality types mapped to Tarot court cards (1-to-1 direct mapping)
print("\n" + "=" * 60)
print("MBTI Personality Types & Tarot Court Cards")
print("=" * 60)

# Create personalities for all 16 MBTI types
mbti_types = ['ENFP', 'ISTJ', 'INTJ', 'INFJ', 'ENTJ', 'ESFJ', 'ESTP', 'ISFJ',
              'ENTP', 'ISFP', 'INTP', 'INFP', 'ESTJ', 'ESFP', 'ISTP', 'INTJ']
for mbti in mbti_types:
    personality = Personality.from_mbti(mbti, Tarot.deck)
    print(f"\n{personality}")
#prints court cards
print(Tarot.deck.card.filter(suit="cups,wands"))

 