import datetime import factory from factory import fuzzy from apollo_main_db.apollo import models from src.db.base import session class OnboardingFactory(factory.alchemy.SQLAlchemyModelFactory): """Fake model for ApolloUserOnboarding.""" user_id = fuzzy.FuzzyText(length=37) is_mobile = factory.Faker("boolean") is_portal = factory.Faker("boolean") created_at = factory.LazyFunction(datetime.datetime.now) class Meta: model = models.ApolloUserOnboarding sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class IsrcRelationFactory(factory.alchemy.SQLAlchemyModelFactory): """Fake model for IsrcRelation.""" id = factory.Faker("pyint") main_isrc = fuzzy.FuzzyText(length=45) isrc = fuzzy.FuzzyText(length=45) factory.LazyFunction(datetime.datetime.now) class Meta: model = models.IsrcRelation sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class MarketFactory(factory.alchemy.SQLAlchemyModelFactory): """Fake model for Market views.""" market_id = factory.Faker("pyint") market_name = fuzzy.FuzzyText(length=2) market_fullname = fuzzy.FuzzyText(length=37) language_code = fuzzy.FuzzyText(length=10) active = factory.Faker("boolean") ga_country_name = fuzzy.FuzzyText(length=37) default_service = fuzzy.FuzzyText(length=10) services = fuzzy.FuzzyText(length=10) workout = factory.LazyAttribute(lambda _: 0) include_other_playlists = factory.LazyAttribute(lambda _: 0) fallback = factory.Faker("boolean") class Meta: model = models.Market sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class GenreFactory(factory.alchemy.SQLAlchemyModelFactory): """Fake model for Genre views.""" id = factory.Faker("pyint") market_id = factory.Faker("pyint") name = fuzzy.FuzzyText(length=50) last_fm_tag = fuzzy.FuzzyText(length=100) active = factory.Faker("boolean") category_id = fuzzy.FuzzyInteger(0) class Meta: model = models.Genre sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class GlobalizationFactory(factory.alchemy.SQLAlchemyModelFactory): """Fake model for Genre views.""" key = fuzzy.FuzzyText(length=45) language_code = fuzzy.FuzzyText(length=5) value = fuzzy.FuzzyText() class Meta: model = models.Globalization sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class ApolloMarketFactory(factory.alchemy.SQLAlchemyModelFactory): """Fake model for Market views.""" id = fuzzy.FuzzyInteger(1, 300) code = fuzzy.FuzzyText(length=2) name = fuzzy.FuzzyText(length=10) full_name = fuzzy.FuzzyText(length=10) is_primary = factory.Faker("boolean") vendors = factory.Faker("pyint") class Meta: model = models.ApolloMarket sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class StarredContentFactory(factory.alchemy.SQLAlchemyModelFactory): """Fake model for Market views.""" id = factory.Faker("pyint") user_id = fuzzy.FuzzyText(length=2) uri = fuzzy.FuzzyText(length=37) isrc = fuzzy.FuzzyText(length=12) class Meta: model = models.StarredContent sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class BuzzUserFactory(factory.alchemy.SQLAlchemyModelFactory): """Fake model for BuzzUser models.""" user_name = fuzzy.FuzzyText(length=12) display_name = fuzzy.FuzzyText(length=20) country_code = fuzzy.FuzzyText(length=4) category_id = factory.Faker("pyint") service_type = factory.Faker("pyint") music_service = factory.Faker("pyint") subscribers = factory.Faker("pyint") playlist_subscribers = factory.Faker("pyint") image = fuzzy.FuzzyText(length=20) class Meta: model = models.BuzzUser sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class MobileVersionFactory(factory.alchemy.SQLAlchemyModelFactory): """Fake model for Apollo Go latest versions view.""" id = factory.Faker("pyint") os = fuzzy.FuzzyText(length=10) version = fuzzy.FuzzyText(length=10) created_at = factory.LazyFunction(datetime.datetime.now) class Meta: model = models.ApolloGoVersion sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class VersionCopiesFactory(factory.alchemy.SQLAlchemyModelFactory): """Fake model for ApolloCopies table.""" id = factory.Faker("pyint") os = fuzzy.FuzzyText(length=10) version = fuzzy.FuzzyText(length=10) created_at = factory.LazyFunction(datetime.datetime.now) updated_at = factory.LazyFunction(datetime.datetime.now) data = fuzzy.FuzzyText() class Meta: model = models.ApolloCopies sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class ApolloGlobalTrackPrioritiesHistoryFactory(factory.alchemy.SQLAlchemyModelFactory): """Fake model for ApolloGlobalTrackPrioritiesHistory.""" id = fuzzy.FuzzyInteger(1, 1000) date = fuzzy.FuzzyDate( (datetime.datetime.utcnow() - datetime.timedelta(days=10)).date(), datetime.datetime.utcnow().date() ) type_id = fuzzy.FuzzyInteger(1, 10) playlist_id = fuzzy.FuzzyText(length=22) class Meta: model = models.ApolloGlobalTrackPrioritiesHistory sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class ApolloGlobalTrackPrioritiesHistoryTrackFactory(factory.alchemy.SQLAlchemyModelFactory): """Fake model for ApolloGlobalTrackPrioritiesHistoryTrack.""" id = fuzzy.FuzzyInteger(100, 9999) history_id = fuzzy.FuzzyInteger(1, 1000) track_id = fuzzy.FuzzyText(length=22) isrc = fuzzy.FuzzyText(length=15) class Meta: model = models.ApolloGlobalTrackPrioritiesHistoryTrack sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class ApolloKeyValueStorageFactory(factory.alchemy.SQLAlchemyModelFactory): """Fake model for ApolloKeyValueStorage.""" id = fuzzy.FuzzyInteger(1, 9999) key = fuzzy.FuzzyText(length=30) value = fuzzy.FuzzyText(length=30) updated_at = fuzzy.FuzzyText(length=30) class Meta: model = models.ApolloKeyValueStorage sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class VersionCarouselFactory(factory.alchemy.SQLAlchemyModelFactory): """Fake model for ApolloVersionCarousel.""" os = fuzzy.FuzzyText(length=5) version = fuzzy.FuzzyText(length=10) class Meta: model = models.ApolloVersionCarousel sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class VersionCarouselSlideFactory(factory.alchemy.SQLAlchemyModelFactory): """Fake model for ApolloVersionCarouselSlide.""" carousel_id = fuzzy.FuzzyInteger(1, 20) slide_num = fuzzy.FuzzyInteger(1, 10) title_1 = fuzzy.FuzzyText(length=30) title_2 = fuzzy.FuzzyText(length=30) img_url = fuzzy.FuzzyText(length=300) description = fuzzy.FuzzyText(length=200) class Meta: model = models.ApolloVersionCarouselSlide sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class UserVersionCarouselFactory(factory.alchemy.SQLAlchemyModelFactory): """Fake model for ApolloUserVersionCarousel.""" user_id = fuzzy.FuzzyText(length=30) carousel_id = fuzzy.FuzzyInteger(1, 1000) class Meta: model = models.ApolloUserVersionCarousel sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class ApolloRecentSearchFactory(factory.alchemy.SQLAlchemyModelFactory): """Fake model for ApolloRecentSearch.""" user_id = fuzzy.FuzzyText(length=30) created_at = factory.LazyFunction(datetime.datetime.now) search_type = fuzzy.FuzzyInteger(0, 3) source = fuzzy.FuzzyText(length=10) country_code = fuzzy.FuzzyText(length=10) class Meta: model = models.ApolloRecentSearch sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class NPSSurveyFactory(factory.alchemy.SQLAlchemyModelFactory): """Fake model for NPSSurvey.""" id = factory.Faker("pyint") name = fuzzy.FuzzyText(length=20) start_date = factory.LazyFunction(datetime.date.today) end_date = factory.LazyFunction(datetime.date.today) active = factory.Faker("boolean") class Meta: model = models.NPSSurvey sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class NPSSurveyQuestionFactory(factory.alchemy.SQLAlchemyModelFactory): """Fake model for NPSSurveyQuestion.""" id = factory.Faker("pyint") survey_id = fuzzy.FuzzyInteger(1, 20) question_num = fuzzy.FuzzyInteger(1, 10) message = fuzzy.FuzzyText(length=50) type = fuzzy.FuzzyText(length=10) labels = fuzzy.FuzzyText(length=1000) class Meta: model = models.NPSSurveyQuestion sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class NPSSurveyUserFactory(factory.alchemy.SQLAlchemyModelFactory): """Fake model for NPSSurveyUser.""" id = factory.Faker("pyint") survey_id = factory.Faker("pyint") user_id = fuzzy.FuzzyText(length=30) class Meta: model = models.NPSSurveyUser sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class NPSSurveyResultFactory(factory.alchemy.SQLAlchemyModelFactory): """Fake model for NPSSurveyResult.""" id = factory.Faker("pyint") survey_id = factory.Faker("pyint") user_id = fuzzy.FuzzyText(length=30) name = fuzzy.FuzzyText(length=10) email = fuzzy.FuzzyText(length=20) status = fuzzy.FuzzyText(length=10) updated_at = factory.LazyFunction(datetime.datetime.now) answers = fuzzy.FuzzyText(length=10) skips_num = 0 class Meta: model = models.NPSSurveyResult sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class ApolloVisitLogFactory(factory.alchemy.SQLAlchemyModelFactory): """Fake model for ApolloVisitLog.""" id = factory.Faker("pyint") user_id = fuzzy.FuzzyText(length=30) dsp_id = fuzzy.FuzzyInteger(1, 2) type_id = fuzzy.FuzzyInteger(1, 2) instance_id = fuzzy.FuzzyText(length=22) created_at = factory.LazyFunction(datetime.datetime.now) class Meta: model = models.ApolloVisitLog sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class UserMarketFactory(factory.alchemy.SQLAlchemyModelFactory): """Fake model for UserMarket.""" user_id = fuzzy.FuzzyText(length=30) market_id = fuzzy.FuzzyInteger(1, 999999) email = fuzzy.FuzzyText(length=30) class Meta: model = models.UserMarket sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class ApolloRegionFactory(factory.alchemy.SQLAlchemyModelFactory): code = fuzzy.FuzzyText(length=10) name = fuzzy.FuzzyText(length=50) is_primary = factory.Faker("boolean") dsp_flag = factory.Faker("pyint") class Meta: model = models.ApolloRegion sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class ApolloMarketRegionFactory(factory.alchemy.SQLAlchemyModelFactory): type = fuzzy.FuzzyChoice( (models.MarketRegionTypeEnum.HH, models.MarketRegionTypeEnum.NMF, models.MarketRegionTypeEnum.GENERAL) ) market_code = fuzzy.FuzzyText(length=10) region_code = fuzzy.FuzzyText(length=10) class Meta: model = models.ApolloMarketRegion sqlalchemy_session_persistence = "commit" sqlalchemy_session = session class ApolloRegionDetailFactory(factory.alchemy.SQLAlchemyModelFactory): type = fuzzy.FuzzyChoice( ( models.MarketRegionTypeEnum.HH, models.MarketRegionTypeEnum.NMF, models.MarketRegionTypeEnum.CHARTS_SPOTIFY, models.MarketRegionTypeEnum.CHARTS_APPLE, ) ) code = fuzzy.FuzzyText(length=10) rank = fuzzy.FuzzyInteger(0) class Meta: model = models.ApolloRegionDetail sqlalchemy_session_persistence = "commit" sqlalchemy_session = session