"""Remove stock/demo image URLs from account-linked profiles."""
from django.core.management.base import BaseCommand

from companies.models import Company
from home.cover_images import is_demo_image_url
from seekers.models import SeekerProfile


class Command(BaseCommand):
    help = 'Clear Unsplash and other demo image URLs from seeker and company profiles'

    def handle(self, *args, **options):
        seeker_covers = 0
        seeker_avatars = 0
        company_covers = 0

        for seeker in SeekerProfile.objects.all().only('pk', 'cover_image_url', 'avatar_url'):
            fields = []
            if is_demo_image_url(seeker.cover_image_url):
                seeker.cover_image_url = ''
                fields.append('cover_image_url')
                seeker_covers += 1
            if is_demo_image_url(seeker.avatar_url):
                seeker.avatar_url = ''
                fields.append('avatar_url')
                seeker_avatars += 1
            if fields:
                seeker.save(update_fields=fields)

        for company in Company.objects.all().only('pk', 'cover_image_url'):
            if is_demo_image_url(company.cover_image_url):
                company.cover_image_url = ''
                company.save(update_fields=['cover_image_url'])
                company_covers += 1

        self.stdout.write(
            self.style.SUCCESS(
                f'Cleared demo URLs: {seeker_covers} seeker covers, '
                f'{seeker_avatars} seeker avatars, {company_covers} company covers.'
            )
        )
