"""Check posts in database"""
import sys
import os
# Fix encoding for Windows
if sys.platform == 'win32':
    os.environ['PYTHONIOENCODING'] = 'utf-8'
    if hasattr(sys.stdout, 'reconfigure'):
        sys.stdout.reconfigure(encoding='utf-8')

from src.database.db import get_session
from src.database.models import Post, Source
from datetime import datetime

s = get_session()

total_posts = s.query(Post).count()
print(f"Total posts in DB: {total_posts}")

if total_posts == 0:
    print("[!] No posts in database!")
    print("    Run /parse or 'python main.py' to parse posts")
else:
    # Check yesterday window
    posts_yesterday = s.query(Post).filter(
        Post.created_at >= '2026-01-12 22:00:00',
        Post.created_at < '2026-01-14 00:00:00'
    ).all()
    
    print(f"\nPosts in yesterday window (2026-01-13): {len(posts_yesterday)}")
    
    if posts_yesterday:
        for i, p in enumerate(posts_yesterday[:10], 1):
            source_name = p.source.username if p.source else "N/A"
            print(f"  {i}. {p.external_id[:20]}: created={p.created_at}, source={source_name}")
    
    # Check recent posts (last 7 days)
    recent_posts = s.query(Post).filter(
        Post.created_at >= datetime.now() - __import__('datetime').timedelta(days=7)
    ).all()
    
    print(f"\nPosts in last 7 days: {len(recent_posts)}")
    
    if recent_posts:
        print("\n  Sample recent posts:")
        for i, p in enumerate(recent_posts[:5], 1):
            source_name = p.source.username if p.source else "N/A"
            print(f"    {i}. created={p.created_at}, source={source_name}")
    
    # Check Instagram sources
    instagram_sources = s.query(Source).filter(Source.platform == 'instagram', Source.is_active == 1).all()
    print(f"\nActive Instagram sources: {len(instagram_sources)}")
    for i, src in enumerate(instagram_sources[:5], 1):
        posts_count = s.query(Post).filter(Post.source_id == src.id).count()
        print(f"  {i}. @{src.username}: {posts_count} posts")

s.close()
