"""Проверка платформ постов за вчера"""

from src.database.db import get_session
from src.database.models import Post, Source
from src.utils.time_window import get_time_window
from sqlalchemy import and_


def check():
    session = get_session()
    
    try:
        start_date, end_date = get_time_window('yesterday')
        
        print("=" * 60)
        print("CHECKING POSTS PLATFORMS FOR YESTERDAY")
        print("=" * 60)
        print(f"Date range: {start_date} to {end_date}")
        print()
        
        # Get all posts
        all_posts = session.query(Post).join(Source).filter(
            and_(Post.created_at >= start_date, Post.created_at < end_date)
        ).all()
        
        print(f"Total posts: {len(all_posts)}")
        print()
        
        # Group by platform
        platforms = {}
        for post in all_posts:
            platform = post.source.platform
            if platform not in platforms:
                platforms[platform] = []
            platforms[platform].append(post)
        
        print("Platforms distribution:")
        for platform, posts in platforms.items():
            print(f"  {platform}: {len(posts)} posts")
            # Show sample usernames
            usernames = set(p.source.username for p in posts[:5])
            print(f"    Sample sources: {', '.join(usernames)}")
        
        print()
        
        # Check Instagram posts specifically
        instagram_posts = [p for p in all_posts if p.source.platform == 'instagram']
        print(f"Instagram posts (filtered in Python): {len(instagram_posts)}")
        
        if instagram_posts:
            print("\nSample Instagram posts:")
            for post in instagram_posts[:5]:
                print(f"  - @{post.source.username}: {post.external_id[:50]}")
                print(f"    Created: {post.created_at}, Platform: {post.source.platform}")
        else:
            print("\n⚠️ No Instagram posts found!")
            if all_posts:
                print("\nAll posts are from other platforms:")
                for post in all_posts[:5]:
                    print(f"  - @{post.source.username}: Platform={post.source.platform}")
        
    finally:
        session.close()


if __name__ == "__main__":
    check()
