import factory from factory import fuzzy from apollo_main_db import AppleMusicWeeklyTopPlaylistTrackSummary, AppleWeeklyTopPlaylistLatest from apollo_main_db.apollo.models import BuzzCategory, BuzzUser from apollo_main_db.apple import models as apple_models from src.db.base import session class AppleMusicSongFactory(factory.alchemy.SQLAlchemyModelFactory): id = factory.Faker("pyint") storefront = fuzzy.FuzzyText(length=2) name = fuzzy.FuzzyText(length=100) artist_name = fuzzy.FuzzyText(length=10) artist_id = factory.Faker("pyint") album_id = factory.Faker("pyint") artwork_url = fuzzy.FuzzyText(length=20) release_date = factory.Faker("date") isrc = fuzzy.FuzzyText(length=5) class Meta: model = apple_models.AppleMusicSong sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class AppleMusicAlbumFactory(factory.alchemy.SQLAlchemyModelFactory): id = factory.Faker("pyint") storefront = fuzzy.FuzzyText(length=2) name = fuzzy.FuzzyText(length=100) release_date = factory.Faker("date") release_year = fuzzy.FuzzyText(length=10) track_count = factory.Faker("pyint") artist_name = fuzzy.FuzzyText(length=10) artwork_url = fuzzy.FuzzyText(length=20) upc = fuzzy.FuzzyText(length=45) class Meta: model = apple_models.AppleMusicAlbum sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class ApplePlaylistFactory(factory.alchemy.SQLAlchemyModelFactory): id = fuzzy.FuzzyText(length=5) name = fuzzy.FuzzyText(length=5) removed = factory.LazyAttribute(lambda _: 0) artwork = fuzzy.FuzzyText(length=5) curator_id = factory.Faker("pyint") latest_update = factory.Faker("date") class Meta: model = apple_models.ApplePlaylist sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class ApplePlaylistStorefrontDataFactory(factory.alchemy.SQLAlchemyModelFactory): playlist_id = fuzzy.FuzzyText(length=5) storefront = fuzzy.FuzzyText(length=2) name = fuzzy.FuzzyText(length=5) artwork = fuzzy.FuzzyText(length=5) class Meta: model = apple_models.ApplePlaylistStorefrontData sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class ApplePlaylistTrackListFactory(factory.alchemy.SQLAlchemyModelFactory): playlist_id = fuzzy.FuzzyText(length=5) storefront = fuzzy.FuzzyText(length=2) song_id = factory.Faker("pyint") position = factory.Faker("pyint") previous_position = factory.Faker("pyint") latest_position_change = factory.Faker("date") added_datetime = factory.Faker("date") added_earliest_datetime = factory.Faker("date") class Meta: model = apple_models.ApplePlaylistTrackList sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class ApplePlaylistTracklistHistoryFactory(factory.alchemy.SQLAlchemyModelFactory): playlist_id = fuzzy.FuzzyText(length=5) storefront = fuzzy.FuzzyText(length=2) song_id = factory.Faker("pyint") position = factory.Faker("pyint") date = factory.Faker("date") class Meta: model = apple_models.ApplePlaylistTracklistHistory sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class AppleMusicContainerStreamSummaryFactory(factory.alchemy.SQLAlchemyModelFactory): container_id = fuzzy.FuzzyText(length=5) country_code = fuzzy.FuzzyText(length=10) streams_7_days = factory.Faker("pyint") class Meta: model = apple_models.AppleMusicContainerStreamSummary sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class AppleMusicCuratorFactory(factory.alchemy.SQLAlchemyModelFactory): id = fuzzy.FuzzyInteger(1, 999999) name = fuzzy.FuzzyText(length=255) type = fuzzy.FuzzyText(length=100) link = fuzzy.FuzzyText(length=100) class Meta: model = apple_models.AppleMusicCurator sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class BuzzUserFactory(factory.alchemy.SQLAlchemyModelFactory): id = fuzzy.FuzzyInteger(1, 999999) user_name = fuzzy.FuzzyText(length=45) display_name = fuzzy.FuzzyText(length=255) category_id = fuzzy.FuzzyInteger(1, 9999999) country_code = fuzzy.FuzzyText(length=100) service_type = fuzzy.FuzzyInteger(1, 9999999) music_service = fuzzy.FuzzyInteger(1, 9999999) created_at = factory.Faker("date") class Meta: model = BuzzUser sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class BuzzCategoryFactory(factory.alchemy.SQLAlchemyModelFactory): id = fuzzy.FuzzyInteger(1, 12) name = fuzzy.FuzzyText(length=100) class Meta: model = BuzzCategory sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class AppleWeeklyTopPlaylistLatestFactory(factory.alchemy.SQLAlchemyModelFactory): date = factory.Faker("date") playlist_id = fuzzy.FuzzyText(length=22) rank = fuzzy.FuzzyInteger(1, 250) country_code = fuzzy.FuzzyText(length=10) class Meta: model = AppleWeeklyTopPlaylistLatest sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class AppleMusicWeeklyTopPlaylistTrackSummaryFactory(factory.alchemy.SQLAlchemyModelFactory): playlist_id = fuzzy.FuzzyText(length=22) isrc = fuzzy.FuzzyText(length=22) storefront = fuzzy.FuzzyText(length=10) entry_date = factory.Faker("date") exit_date = factory.Faker("date") class Meta: model = AppleMusicWeeklyTopPlaylistTrackSummary sqlalchemy_session_persistence = "commit" sqlalchemy_session = session