diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..cdedf96 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,30 @@ +# Use official Python image +FROM python:3.9-slim + +# Set environment variables +ENV PYTHONDONTWRITEBYTECODE=1 +ENV PYTHONUNBUFFERED=1 + +# Set work directory +WORKDIR /app + +# Install system dependencies +RUN apt-get update && apt-get install -y --no-install-recommends \ + gcc \ + python3-dev \ + && rm -rf /var/lib/apt/lists/* + +# Copy requirements first to leverage Docker cache +COPY requirements.txt . + +# Install Python dependencies +RUN pip install --no-cache-dir -r requirements.txt + +# Copy project +COPY . . + +# Expose FastAPI port +EXPOSE 8000 + +# Command to run both FastAPI server and scheduler +CMD ["sh", "-c", "python -m uvicorn src.moovitamix_fastapi.main:app --host 0.0.0.0 --port 8000 & python src/data_pipelines/scheduler.py"] \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..04e3fd4 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,10 @@ +version: '3.8' + +services: + moovitamix: + build: . + ports: + - "8000:8000" + volumes: + - ./data:/app/data + restart: unless-stopped \ No newline at end of file diff --git a/docs/ANSWERS.md b/docs/ANSWERS.md index d038faa..cb08e68 100644 --- a/docs/ANSWERS.md +++ b/docs/ANSWERS.md @@ -1,23 +1,305 @@ -# Réponses du test +# Test Answers -## _Utilisation de la solution (étape 1 à 3)_ +## Q1 Setup the Project +We need to clone the repository and create a python virtual environment +```bash +mkdir moovai +cd moovai +git clone https://github.com/moovai/technical-test-data-engineer.git +cd technical-test-data-engineer +git checkout -b feature/name_of_your_branch +python -m venv test_venv +source test_venv/bin/activate +pip install -r requirements.txt +``` -_Inscrire la documentation technique_ +## Q2 Develop a data flow, in Python, designed to retrieve data from the API daily -## Questions (étapes 4 à 7) +### 1. First we run the API server +```bash +cd src/moovitamix_fastapi +python -m uvicorn main:app +``` +Now we can access the API documentation at: http://127.0.0.1:8000/docs -### Étape 4 +The API has three endpoints: +- `/tracks` - Available music tracks +- `/users` - User information +- `/listen_history` - User listening history + +### 2. Now we run the data pipeline: +```bash +python src/data_pipelines/daily_pipeline.py +``` -_votre réponse ici_ +## Q3 Run unit tests -### Étape 5 +```bash +pytest # from the project root +``` -_votre réponse ici_ +## Q4 Database schema recommendation -### Étape 6 +I recommend a relational database schema with the following tables: -_votre réponse ici_ +**1. tracks** +```sql +CREATE TABLE tracks ( + id INT PRIMARY KEY, + name VARCHAR(255) NOT NULL, + artist VARCHAR(255) NOT NULL, + songwriters TEXT, + duration INTERVAL NOT NULL, + genres VARCHAR(255)[] NOT NULL, + album VARCHAR(255), + created_at TIMESTAMP NOT NULL, + updated_at TIMESTAMP NOT NULL +); +``` + +**2. users** +```sql +CREATE TABLE users ( + id INT PRIMARY KEY, + first_name VARCHAR(255) NOT NULL, + last_name VARCHAR(255) NOT NULL, + email VARCHAR(255) UNIQUE NOT NULL, + gender VARCHAR(50), + favorite_genres VARCHAR(255)[], + created_at TIMESTAMP NOT NULL, + updated_at TIMESTAMP NOT NULL +); +``` -### Étape 7 +**3. listen_history** +```sql +CREATE TABLE listen_history ( + id SERIAL PRIMARY KEY, + user_id INT REFERENCES users(id), + track_id INT REFERENCES tracks(id), + listen_time TIMESTAMP NOT NULL, + created_at TIMESTAMP NOT NULL, + updated_at TIMESTAMP NOT NULL +); +``` -_votre réponse ici_ + +**4. recommendations (for storing generated recommendations)** +```sql +CREATE TABLE recommendations ( + id SERIAL PRIMARY KEY, + user_id INT REFERENCES users(id), + recommended_tracks INT[] NOT NULL, + generation_date TIMESTAMP NOT NULL, + expires_at TIMESTAMP NOT NULL +); +``` + +### My recommended Database system is PostgreSQL. + +#### Justification: + + 1. Relational Nature: The data has clear relationships (users to tracks, listen history joins both) + + 2. JSON Support: PostgreSQL handles array types well (for genres and track lists) + + 3. Performance: Excellent for read-heavy workloads like recommendation systems + + 4. Maturity: Proven reliability for production systems + + +## Q5 monitoring strategies for the pipeline + +### Key metrics to track + + + 1. Data Quality Metrics: + + - Record counts per run (expected vs actual) + + - Null value percentages in critical fields + + - Data freshness (time since last successful run) + + 2. Pipeline Performance Metrics: + + - Execution time per endpoint + + - API response times + + - Error rates per endpoint + + 3. System Metrics: + + - Memory/CPU usage during runs + + - Disk space for stored data + + - Network latency to API + +### Implementation Strategy: + + 1. Logging: + + - Structured logging (JSON format) with severity levels + + - Include correlation IDs for tracking pipeline runs + + 2. Monitoring Tools: + + - Elasticsearch or Prometheus + Grafana for metrics visualization + + - Sentry for error tracking + + - GCP monitoring if run in GCP + + 3. Alerting: + + - Email alerts for: + + Failed pipeline runs + + Data quality anomalies + + Performance degradation + + 4. Data Validation: + + - Implement Great Expectations or custom checks for: + + Referential integrity (user_ids in listen_history exist in users) + + Value ranges (durations > 0) + + Uniqueness constraints + +## Q6 Recommendation Calculation Automation + +### Architecture Overview + +```mermaid +graph TD + A[Daily Pipeline] -->|Stores raw data| B[(Data Lake)] + B --> C[Preprocessing] + C -->|Features| D[Recommendation Engine] + D -->|Recommendations| E[(Results DB)] + E --> F[API Serving] + F --> G[End Users] + + style A fill:#f9g,stroke:#333 + style B fill:#bfg,stroke:#333 + style D fill:#f9g,stroke:#333 +``` + +Implementation Steps: + +### 1. Trigger: + + - Airflow DAG triggered after successful data ingestion + + - Alternatively: Kubernetes CronJob + +### 2. Processing: + +```python +def generate_recommendations(): + # 1. Load fresh data + user_history = load_listen_history() + tracks = load_tracks() + + # 2. Feature engineering + features = create_features(user_history, tracks) + + # 3. Generate recommendations + recs = model.predict(features) + + # 4. Store results + save_to_db(recs) +``` + +### 3. Technologies: + + - Batch Processing: Spark or Dask for large datasets + + - Model Serving: MLflow or custom FastAPI endpoint + + - Orchestration: Airflow or Prefect + +### 4. Scheduling: + + - Run nightly after data ingestion completes + + - Gradual rollout with canary testing + +## Q7 Model Retraining Automation + +### Retraining Pipeline Design + +```mermaid +graph LR + A[New Data] --> B{Trigger} + B -->|Scheduled| C[Data Validation] + B -->|Data Drift| C + B -->|On Demand| C + C --> D[Feature Engineering] + D --> E[Model Training] + E --> F[Model Evaluation] + F -->|Approved| G[Model Registry] + F -->|Rejected| H[Alert Team] + G --> I[Model Deployment] + I --> J[Production Serving] + + style A fill:#9fg,stroke:#333 + style B fill:#fg9,stroke:#333 + style C fill:#f9g,stroke:#333 + style D fill:#bbg,stroke:#333 + style E fill:#6fg,stroke:#333 + style F fill:#fcg,stroke:#333 + style G fill:#6cg,stroke:#333 + style H fill:#f9g,stroke:#333 + style I fill:#9g9,stroke:#333 + style J fill:#9fg,stroke:#333 +``` + +### Component Description + +| Component | Purpose | Tools Example | +|-----------|---------|---------------| +| **Trigger** | Initiate retraining workflow | Airflow, Cron, MLflow | +| **Data Validation** | Verify data quality/schema | Great Expectations, Pandera | +| **Feature Engineering** | Transform raw data | Pandas, Spark, Feast | +| **Model Training** | Train new model version | Scikit-learn, TensorFlow | +| **Model Evaluation** | Compare against baseline | MLflow, Weights & Biases | +| **Model Registry** | Version control for models | MLflow, DVC | +| **Model Deployment** | Safe rollout to production | Kubernetes, SageMaker | + +### Key Features +1. **Multiple Trigger Types**: + - Scheduled (weekly/monthly) + - On data drift detection + - Manual on-demand triggers + +2. **Quality Gates**: + ```mermaid + graph TD + A[Training Complete] --> B{Accuracy > Threshold?} + B -->|Yes| C[Register Model] + B -->|No| D[Send Alert] + ``` + +3. **Safe Deployment**: + - Shadow mode testing + - Canary releases + - Automated rollback + +### Sample Configuration (YAML) +```yaml +retraining: + schedule: "0 0 * * 0" # Weekly Sunday + drift_threshold: 0.15 + metrics: + - name: accuracy + threshold: 0.85 + - name: f1_score + threshold: 0.80 +``` diff --git a/pytest.ini b/pytest.ini new file mode 100644 index 0000000..939f553 --- /dev/null +++ b/pytest.ini @@ -0,0 +1,3 @@ +# pytest.ini +[pytest] +pythonpath = src \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 55593fd..20f69a4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,12 @@ +pytest-vscodedebug +# Core dependencies for data pipeline +requests>=2.31.0 +pandas>=2.0.0 +pytest>=7.0.0 +fastapi==0.104.1 +uvicorn>=0.22.0 +fastapi-pagination==0.12.14 +pydantic==2.5.0 faker -fastapi -uvicorn -fastapi_pagination -pytest \ No newline at end of file +schedule==1.1.0 +python-dotenv==1.0.0 diff --git a/src/data_pipelines/__init__.py b/src/data_pipelines/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/data_pipelines/daily_pipeline.py b/src/data_pipelines/daily_pipeline.py new file mode 100644 index 0000000..d3e741d --- /dev/null +++ b/src/data_pipelines/daily_pipeline.py @@ -0,0 +1,27 @@ +import requests +import json +import os +from datetime import datetime + +BASE_URL = "http://localhost:8000" +ENDPOINTS = ["tracks", "users", "listen_history"] +OUTPUT_DIR = "data_output" + +def fetch_and_store_data(): + os.makedirs(OUTPUT_DIR, exist_ok=True) + timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") + + for endpoint in ENDPOINTS: + url = f"{BASE_URL}/{endpoint}" + response = requests.get(url) + response.raise_for_status() + data = response.json() + + # Save to JSON file + with open(f"{OUTPUT_DIR}/{endpoint}_{timestamp}.json", "w") as f: + json.dump(data, f, indent=2) + + print("Data pipeline executed successfully.") + +if __name__ == "__main__": + fetch_and_store_data() diff --git a/src/data_pipelines/data_output/listen_history_20250806_224023.json b/src/data_pipelines/data_output/listen_history_20250806_224023.json new file mode 100644 index 0000000..901a5f7 --- /dev/null +++ b/src/data_pipelines/data_output/listen_history_20250806_224023.json @@ -0,0 +1,608 @@ +{ + "items": [ + { + "user_id": 86165, + "items": [ + 69829, + 46006, + 66942, + 36254, + 28769 + ], + "created_at": "2024-06-01T04:31:49.406390", + "updated_at": "2025-07-17T04:51:50.747887" + }, + { + "user_id": 33653, + "items": [ + 54188, + 43577, + 37661, + 86796, + 29287 + ], + "created_at": "2024-01-10T04:31:28.643958", + "updated_at": "2025-03-27T11:19:42.241555" + }, + { + "user_id": 12193, + "items": [ + 35341, + 1637, + 97404, + 64172, + 11653 + ], + "created_at": "2025-01-26T08:03:39.410852", + "updated_at": "2025-04-30T10:05:40.339807" + }, + { + "user_id": 23281, + "items": [ + 28795, + 23475, + 36254, + 43418, + 9141 + ], + "created_at": "2024-05-05T03:25:02.551544", + "updated_at": "2025-04-14T07:47:53.566300" + }, + { + "user_id": 42413, + "items": [ + 20548, + 50605, + 89541, + 25455, + 58640 + ], + "created_at": "2024-02-06T04:19:42.757488", + "updated_at": "2024-10-20T13:23:19.003321" + }, + { + "user_id": 43833, + "items": [ + 55706, + 76971, + 37058, + 78518, + 84708 + ], + "created_at": "2024-08-27T17:20:36.725392", + "updated_at": "2024-10-01T13:46:27.506003" + }, + { + "user_id": 30415, + "items": [ + 5503, + 27574, + 45591, + 90945, + 29992 + ], + "created_at": "2025-04-27T07:39:24.555027", + "updated_at": "2025-04-30T22:59:11.244293" + }, + { + "user_id": 33428, + "items": [ + 29735, + 35985, + 79067, + 35765, + 77662 + ], + "created_at": "2025-06-10T13:00:13.019787", + "updated_at": "2025-06-24T22:15:36.157705" + }, + { + "user_id": 70349, + "items": [ + 31424, + 44311, + 778, + 89408, + 47113 + ], + "created_at": "2025-01-20T12:02:44.025484", + "updated_at": "2025-06-28T11:42:08.018338" + }, + { + "user_id": 87963, + "items": [ + 84343, + 263, + 30717, + 50567, + 41766 + ], + "created_at": "2024-09-11T07:09:18.303783", + "updated_at": "2025-04-05T03:45:25.995456" + }, + { + "user_id": 80506, + "items": [ + 82208, + 84343, + 429, + 44969, + 13660 + ], + "created_at": "2023-12-03T06:00:04.916387", + "updated_at": "2025-08-04T08:58:46.691254" + }, + { + "user_id": 27463, + "items": [ + 98444, + 38204, + 91636, + 73274, + 53341 + ], + "created_at": "2024-08-18T00:02:39.782992", + "updated_at": "2025-07-25T23:24:54.016888" + }, + { + "user_id": 51822, + "items": [ + 763, + 32832, + 50890, + 60820, + 18688 + ], + "created_at": "2025-03-19T08:55:16.984175", + "updated_at": "2025-04-27T17:40:16.462508" + }, + { + "user_id": 42510, + "items": [ + 71202, + 64905, + 13917, + 46689, + 27637 + ], + "created_at": "2024-12-29T11:23:40.752227", + "updated_at": "2025-08-02T00:10:59.130021" + }, + { + "user_id": 86429, + "items": [ + 66570, + 10658, + 66526, + 45643, + 40193 + ], + "created_at": "2024-12-10T20:56:43.601838", + "updated_at": "2025-04-16T11:37:14.014218" + }, + { + "user_id": 97333, + "items": [ + 10658, + 47356, + 90015, + 30124, + 73274 + ], + "created_at": "2025-02-16T00:57:10.667349", + "updated_at": "2025-04-22T23:45:13.907373" + }, + { + "user_id": 64720, + "items": [ + 9390, + 52880, + 93891, + 617, + 35525 + ], + "created_at": "2023-10-31T09:07:38.724214", + "updated_at": "2025-01-31T21:11:34.720568" + }, + { + "user_id": 82937, + "items": [ + 92390, + 44614, + 69557, + 36522, + 82885 + ], + "created_at": "2025-04-08T20:26:05.847389", + "updated_at": "2025-06-30T09:56:06.807852" + }, + { + "user_id": 88473, + "items": [ + 38719, + 23388, + 89657, + 52695, + 27414 + ], + "created_at": "2024-07-18T12:45:04.951246", + "updated_at": "2025-02-07T21:42:02.606908" + }, + { + "user_id": 24148, + "items": [ + 16435, + 67146, + 13966, + 8362, + 58627 + ], + "created_at": "2024-06-26T09:48:18.022699", + "updated_at": "2024-09-08T16:13:51.562080" + }, + { + "user_id": 39562, + "items": [ + 11319, + 76245, + 29992, + 26891, + 55214 + ], + "created_at": "2024-03-10T07:53:52.018909", + "updated_at": "2024-05-22T17:03:11.189580" + }, + { + "user_id": 25631, + "items": [ + 14000, + 70483, + 5377, + 8071, + 52256 + ], + "created_at": "2024-10-31T02:15:18.339001", + "updated_at": "2025-05-12T03:46:29.623417" + }, + { + "user_id": 64587, + "items": [ + 42294, + 90957, + 55309, + 66312, + 24864 + ], + "created_at": "2023-11-04T23:42:59.916236", + "updated_at": "2024-09-27T17:48:47.236319" + }, + { + "user_id": 99298, + "items": [ + 24375, + 27347, + 37113, + 32578, + 12258 + ], + "created_at": "2024-06-13T16:59:55.934960", + "updated_at": "2025-06-29T16:56:30.860606" + }, + { + "user_id": 88965, + "items": [ + 1247, + 73870, + 61519, + 10647, + 26885 + ], + "created_at": "2024-05-29T18:25:30.050021", + "updated_at": "2024-06-25T02:27:29.634654" + }, + { + "user_id": 60115, + "items": [ + 33424, + 70483, + 60013, + 27619, + 76455 + ], + "created_at": "2024-03-15T09:23:57.816227", + "updated_at": "2024-06-26T18:36:36.221283" + }, + { + "user_id": 27501, + "items": [ + 29735, + 76398, + 49339, + 76256, + 54713 + ], + "created_at": "2023-10-20T17:54:02.839155", + "updated_at": "2023-10-28T23:19:14.941742" + }, + { + "user_id": 20850, + "items": [ + 59403, + 41398, + 44614, + 82765, + 11319 + ], + "created_at": "2025-05-16T18:51:50.609166", + "updated_at": "2025-05-25T13:04:58.675591" + }, + { + "user_id": 60114, + "items": [ + 63999, + 21036, + 26790, + 75164, + 49843 + ], + "created_at": "2023-10-28T15:52:23.187162", + "updated_at": "2024-11-12T18:28:33.276519" + }, + { + "user_id": 12191, + "items": [ + 55493, + 92529, + 62350, + 92511, + 23523 + ], + "created_at": "2023-10-13T07:18:28.454024", + "updated_at": "2023-12-16T14:35:46.663191" + }, + { + "user_id": 74628, + "items": [ + 23388, + 29735, + 47436, + 29790, + 81719 + ], + "created_at": "2023-09-06T13:07:24.995349", + "updated_at": "2025-01-14T13:22:30.347707" + }, + { + "user_id": 38062, + "items": [ + 23523, + 78518, + 46134, + 66766, + 21500 + ], + "created_at": "2024-09-14T11:30:34.455611", + "updated_at": "2024-11-16T00:31:27.780196" + }, + { + "user_id": 64807, + "items": [ + 22572, + 29418, + 67497, + 87165, + 68393 + ], + "created_at": "2023-09-26T22:37:19.650904", + "updated_at": "2024-12-08T18:42:40.310021" + }, + { + "user_id": 48369, + "items": [ + 52213, + 66378, + 32536, + 76059, + 27768 + ], + "created_at": "2024-12-03T03:38:46.022698", + "updated_at": "2025-03-09T09:02:08.244017" + }, + { + "user_id": 54562, + "items": [ + 97404, + 59541, + 66378, + 74342, + 79681 + ], + "created_at": "2024-07-28T03:50:45.937301", + "updated_at": "2024-11-16T06:55:51.951644" + }, + { + "user_id": 46047, + "items": [ + 74654, + 90897, + 25254, + 47436, + 71569 + ], + "created_at": "2024-04-16T17:27:09.810049", + "updated_at": "2024-05-25T09:14:22.974779" + }, + { + "user_id": 31641, + "items": [ + 1637, + 52793, + 22055, + 59856, + 26577 + ], + "created_at": "2025-03-01T09:16:42.735340", + "updated_at": "2025-06-05T12:33:11.633533" + }, + { + "user_id": 92174, + "items": [ + 81178, + 58627, + 38586, + 90957, + 47526 + ], + "created_at": "2024-12-11T04:41:36.516678", + "updated_at": "2025-01-04T05:49:11.376440" + }, + { + "user_id": 30353, + "items": [ + 31218, + 81879, + 27546, + 33239, + 1247 + ], + "created_at": "2024-09-18T11:19:51.915329", + "updated_at": "2025-02-01T08:35:42.191323" + }, + { + "user_id": 62648, + "items": [ + 11994, + 87453, + 2098, + 50664, + 39364 + ], + "created_at": "2024-11-06T05:44:15.093741", + "updated_at": "2025-07-19T23:52:03.666179" + }, + { + "user_id": 54821, + "items": [ + 88998, + 33261, + 2365, + 41398, + 98269 + ], + "created_at": "2024-05-23T14:59:15.152362", + "updated_at": "2025-02-14T13:28:16.264710" + }, + { + "user_id": 82332, + "items": [ + 26891, + 42545, + 61519, + 76059, + 50664 + ], + "created_at": "2024-06-29T10:22:50.455090", + "updated_at": "2024-09-19T21:16:27.468500" + }, + { + "user_id": 14395, + "items": [ + 80184, + 38586, + 93347, + 88080, + 43243 + ], + "created_at": "2024-09-27T16:48:24.520550", + "updated_at": "2024-11-08T16:29:18.881674" + }, + { + "user_id": 92112, + "items": [ + 84527, + 7510, + 9107, + 50567, + 32080 + ], + "created_at": "2024-05-08T16:00:30.136501", + "updated_at": "2025-01-18T14:38:05.887460" + }, + { + "user_id": 16290, + "items": [ + 95971, + 27027, + 23180, + 47236, + 32006 + ], + "created_at": "2024-04-08T17:48:33.598171", + "updated_at": "2024-10-06T06:36:18.543180" + }, + { + "user_id": 20844, + "items": [ + 30164, + 12145, + 96897, + 96672, + 37482 + ], + "created_at": "2025-01-17T02:08:33.585216", + "updated_at": "2025-08-04T16:40:19.061692" + }, + { + "user_id": 30716, + "items": [ + 62397, + 87453, + 5377, + 81178, + 68833 + ], + "created_at": "2024-03-26T22:31:59.015745", + "updated_at": "2024-10-04T03:09:58.851190" + }, + { + "user_id": 20466, + "items": [ + 84069, + 66766, + 70512, + 44933, + 64931 + ], + "created_at": "2024-05-01T06:44:18.657723", + "updated_at": "2025-07-28T06:56:54.273081" + }, + { + "user_id": 12157, + "items": [ + 59373, + 92031, + 67732, + 42452, + 44761 + ], + "created_at": "2023-08-25T18:22:34.851562", + "updated_at": "2023-12-23T14:55:53.696173" + }, + { + "user_id": 94630, + "items": [ + 81245, + 35985, + 71089, + 36254, + 38719 + ], + "created_at": "2025-08-03T00:29:53.690852", + "updated_at": "2025-08-03T16:55:47.698908" + } + ], + "total": 1000, + "page": 1, + "size": 50, + "pages": 20 +} \ No newline at end of file diff --git a/src/data_pipelines/data_output/listen_history_20250806_231914.json b/src/data_pipelines/data_output/listen_history_20250806_231914.json new file mode 100644 index 0000000..901a5f7 --- /dev/null +++ b/src/data_pipelines/data_output/listen_history_20250806_231914.json @@ -0,0 +1,608 @@ +{ + "items": [ + { + "user_id": 86165, + "items": [ + 69829, + 46006, + 66942, + 36254, + 28769 + ], + "created_at": "2024-06-01T04:31:49.406390", + "updated_at": "2025-07-17T04:51:50.747887" + }, + { + "user_id": 33653, + "items": [ + 54188, + 43577, + 37661, + 86796, + 29287 + ], + "created_at": "2024-01-10T04:31:28.643958", + "updated_at": "2025-03-27T11:19:42.241555" + }, + { + "user_id": 12193, + "items": [ + 35341, + 1637, + 97404, + 64172, + 11653 + ], + "created_at": "2025-01-26T08:03:39.410852", + "updated_at": "2025-04-30T10:05:40.339807" + }, + { + "user_id": 23281, + "items": [ + 28795, + 23475, + 36254, + 43418, + 9141 + ], + "created_at": "2024-05-05T03:25:02.551544", + "updated_at": "2025-04-14T07:47:53.566300" + }, + { + "user_id": 42413, + "items": [ + 20548, + 50605, + 89541, + 25455, + 58640 + ], + "created_at": "2024-02-06T04:19:42.757488", + "updated_at": "2024-10-20T13:23:19.003321" + }, + { + "user_id": 43833, + "items": [ + 55706, + 76971, + 37058, + 78518, + 84708 + ], + "created_at": "2024-08-27T17:20:36.725392", + "updated_at": "2024-10-01T13:46:27.506003" + }, + { + "user_id": 30415, + "items": [ + 5503, + 27574, + 45591, + 90945, + 29992 + ], + "created_at": "2025-04-27T07:39:24.555027", + "updated_at": "2025-04-30T22:59:11.244293" + }, + { + "user_id": 33428, + "items": [ + 29735, + 35985, + 79067, + 35765, + 77662 + ], + "created_at": "2025-06-10T13:00:13.019787", + "updated_at": "2025-06-24T22:15:36.157705" + }, + { + "user_id": 70349, + "items": [ + 31424, + 44311, + 778, + 89408, + 47113 + ], + "created_at": "2025-01-20T12:02:44.025484", + "updated_at": "2025-06-28T11:42:08.018338" + }, + { + "user_id": 87963, + "items": [ + 84343, + 263, + 30717, + 50567, + 41766 + ], + "created_at": "2024-09-11T07:09:18.303783", + "updated_at": "2025-04-05T03:45:25.995456" + }, + { + "user_id": 80506, + "items": [ + 82208, + 84343, + 429, + 44969, + 13660 + ], + "created_at": "2023-12-03T06:00:04.916387", + "updated_at": "2025-08-04T08:58:46.691254" + }, + { + "user_id": 27463, + "items": [ + 98444, + 38204, + 91636, + 73274, + 53341 + ], + "created_at": "2024-08-18T00:02:39.782992", + "updated_at": "2025-07-25T23:24:54.016888" + }, + { + "user_id": 51822, + "items": [ + 763, + 32832, + 50890, + 60820, + 18688 + ], + "created_at": "2025-03-19T08:55:16.984175", + "updated_at": "2025-04-27T17:40:16.462508" + }, + { + "user_id": 42510, + "items": [ + 71202, + 64905, + 13917, + 46689, + 27637 + ], + "created_at": "2024-12-29T11:23:40.752227", + "updated_at": "2025-08-02T00:10:59.130021" + }, + { + "user_id": 86429, + "items": [ + 66570, + 10658, + 66526, + 45643, + 40193 + ], + "created_at": "2024-12-10T20:56:43.601838", + "updated_at": "2025-04-16T11:37:14.014218" + }, + { + "user_id": 97333, + "items": [ + 10658, + 47356, + 90015, + 30124, + 73274 + ], + "created_at": "2025-02-16T00:57:10.667349", + "updated_at": "2025-04-22T23:45:13.907373" + }, + { + "user_id": 64720, + "items": [ + 9390, + 52880, + 93891, + 617, + 35525 + ], + "created_at": "2023-10-31T09:07:38.724214", + "updated_at": "2025-01-31T21:11:34.720568" + }, + { + "user_id": 82937, + "items": [ + 92390, + 44614, + 69557, + 36522, + 82885 + ], + "created_at": "2025-04-08T20:26:05.847389", + "updated_at": "2025-06-30T09:56:06.807852" + }, + { + "user_id": 88473, + "items": [ + 38719, + 23388, + 89657, + 52695, + 27414 + ], + "created_at": "2024-07-18T12:45:04.951246", + "updated_at": "2025-02-07T21:42:02.606908" + }, + { + "user_id": 24148, + "items": [ + 16435, + 67146, + 13966, + 8362, + 58627 + ], + "created_at": "2024-06-26T09:48:18.022699", + "updated_at": "2024-09-08T16:13:51.562080" + }, + { + "user_id": 39562, + "items": [ + 11319, + 76245, + 29992, + 26891, + 55214 + ], + "created_at": "2024-03-10T07:53:52.018909", + "updated_at": "2024-05-22T17:03:11.189580" + }, + { + "user_id": 25631, + "items": [ + 14000, + 70483, + 5377, + 8071, + 52256 + ], + "created_at": "2024-10-31T02:15:18.339001", + "updated_at": "2025-05-12T03:46:29.623417" + }, + { + "user_id": 64587, + "items": [ + 42294, + 90957, + 55309, + 66312, + 24864 + ], + "created_at": "2023-11-04T23:42:59.916236", + "updated_at": "2024-09-27T17:48:47.236319" + }, + { + "user_id": 99298, + "items": [ + 24375, + 27347, + 37113, + 32578, + 12258 + ], + "created_at": "2024-06-13T16:59:55.934960", + "updated_at": "2025-06-29T16:56:30.860606" + }, + { + "user_id": 88965, + "items": [ + 1247, + 73870, + 61519, + 10647, + 26885 + ], + "created_at": "2024-05-29T18:25:30.050021", + "updated_at": "2024-06-25T02:27:29.634654" + }, + { + "user_id": 60115, + "items": [ + 33424, + 70483, + 60013, + 27619, + 76455 + ], + "created_at": "2024-03-15T09:23:57.816227", + "updated_at": "2024-06-26T18:36:36.221283" + }, + { + "user_id": 27501, + "items": [ + 29735, + 76398, + 49339, + 76256, + 54713 + ], + "created_at": "2023-10-20T17:54:02.839155", + "updated_at": "2023-10-28T23:19:14.941742" + }, + { + "user_id": 20850, + "items": [ + 59403, + 41398, + 44614, + 82765, + 11319 + ], + "created_at": "2025-05-16T18:51:50.609166", + "updated_at": "2025-05-25T13:04:58.675591" + }, + { + "user_id": 60114, + "items": [ + 63999, + 21036, + 26790, + 75164, + 49843 + ], + "created_at": "2023-10-28T15:52:23.187162", + "updated_at": "2024-11-12T18:28:33.276519" + }, + { + "user_id": 12191, + "items": [ + 55493, + 92529, + 62350, + 92511, + 23523 + ], + "created_at": "2023-10-13T07:18:28.454024", + "updated_at": "2023-12-16T14:35:46.663191" + }, + { + "user_id": 74628, + "items": [ + 23388, + 29735, + 47436, + 29790, + 81719 + ], + "created_at": "2023-09-06T13:07:24.995349", + "updated_at": "2025-01-14T13:22:30.347707" + }, + { + "user_id": 38062, + "items": [ + 23523, + 78518, + 46134, + 66766, + 21500 + ], + "created_at": "2024-09-14T11:30:34.455611", + "updated_at": "2024-11-16T00:31:27.780196" + }, + { + "user_id": 64807, + "items": [ + 22572, + 29418, + 67497, + 87165, + 68393 + ], + "created_at": "2023-09-26T22:37:19.650904", + "updated_at": "2024-12-08T18:42:40.310021" + }, + { + "user_id": 48369, + "items": [ + 52213, + 66378, + 32536, + 76059, + 27768 + ], + "created_at": "2024-12-03T03:38:46.022698", + "updated_at": "2025-03-09T09:02:08.244017" + }, + { + "user_id": 54562, + "items": [ + 97404, + 59541, + 66378, + 74342, + 79681 + ], + "created_at": "2024-07-28T03:50:45.937301", + "updated_at": "2024-11-16T06:55:51.951644" + }, + { + "user_id": 46047, + "items": [ + 74654, + 90897, + 25254, + 47436, + 71569 + ], + "created_at": "2024-04-16T17:27:09.810049", + "updated_at": "2024-05-25T09:14:22.974779" + }, + { + "user_id": 31641, + "items": [ + 1637, + 52793, + 22055, + 59856, + 26577 + ], + "created_at": "2025-03-01T09:16:42.735340", + "updated_at": "2025-06-05T12:33:11.633533" + }, + { + "user_id": 92174, + "items": [ + 81178, + 58627, + 38586, + 90957, + 47526 + ], + "created_at": "2024-12-11T04:41:36.516678", + "updated_at": "2025-01-04T05:49:11.376440" + }, + { + "user_id": 30353, + "items": [ + 31218, + 81879, + 27546, + 33239, + 1247 + ], + "created_at": "2024-09-18T11:19:51.915329", + "updated_at": "2025-02-01T08:35:42.191323" + }, + { + "user_id": 62648, + "items": [ + 11994, + 87453, + 2098, + 50664, + 39364 + ], + "created_at": "2024-11-06T05:44:15.093741", + "updated_at": "2025-07-19T23:52:03.666179" + }, + { + "user_id": 54821, + "items": [ + 88998, + 33261, + 2365, + 41398, + 98269 + ], + "created_at": "2024-05-23T14:59:15.152362", + "updated_at": "2025-02-14T13:28:16.264710" + }, + { + "user_id": 82332, + "items": [ + 26891, + 42545, + 61519, + 76059, + 50664 + ], + "created_at": "2024-06-29T10:22:50.455090", + "updated_at": "2024-09-19T21:16:27.468500" + }, + { + "user_id": 14395, + "items": [ + 80184, + 38586, + 93347, + 88080, + 43243 + ], + "created_at": "2024-09-27T16:48:24.520550", + "updated_at": "2024-11-08T16:29:18.881674" + }, + { + "user_id": 92112, + "items": [ + 84527, + 7510, + 9107, + 50567, + 32080 + ], + "created_at": "2024-05-08T16:00:30.136501", + "updated_at": "2025-01-18T14:38:05.887460" + }, + { + "user_id": 16290, + "items": [ + 95971, + 27027, + 23180, + 47236, + 32006 + ], + "created_at": "2024-04-08T17:48:33.598171", + "updated_at": "2024-10-06T06:36:18.543180" + }, + { + "user_id": 20844, + "items": [ + 30164, + 12145, + 96897, + 96672, + 37482 + ], + "created_at": "2025-01-17T02:08:33.585216", + "updated_at": "2025-08-04T16:40:19.061692" + }, + { + "user_id": 30716, + "items": [ + 62397, + 87453, + 5377, + 81178, + 68833 + ], + "created_at": "2024-03-26T22:31:59.015745", + "updated_at": "2024-10-04T03:09:58.851190" + }, + { + "user_id": 20466, + "items": [ + 84069, + 66766, + 70512, + 44933, + 64931 + ], + "created_at": "2024-05-01T06:44:18.657723", + "updated_at": "2025-07-28T06:56:54.273081" + }, + { + "user_id": 12157, + "items": [ + 59373, + 92031, + 67732, + 42452, + 44761 + ], + "created_at": "2023-08-25T18:22:34.851562", + "updated_at": "2023-12-23T14:55:53.696173" + }, + { + "user_id": 94630, + "items": [ + 81245, + 35985, + 71089, + 36254, + 38719 + ], + "created_at": "2025-08-03T00:29:53.690852", + "updated_at": "2025-08-03T16:55:47.698908" + } + ], + "total": 1000, + "page": 1, + "size": 50, + "pages": 20 +} \ No newline at end of file diff --git a/src/data_pipelines/data_output/listen_history_20250806_233438.json b/src/data_pipelines/data_output/listen_history_20250806_233438.json new file mode 100644 index 0000000..901a5f7 --- /dev/null +++ b/src/data_pipelines/data_output/listen_history_20250806_233438.json @@ -0,0 +1,608 @@ +{ + "items": [ + { + "user_id": 86165, + "items": [ + 69829, + 46006, + 66942, + 36254, + 28769 + ], + "created_at": "2024-06-01T04:31:49.406390", + "updated_at": "2025-07-17T04:51:50.747887" + }, + { + "user_id": 33653, + "items": [ + 54188, + 43577, + 37661, + 86796, + 29287 + ], + "created_at": "2024-01-10T04:31:28.643958", + "updated_at": "2025-03-27T11:19:42.241555" + }, + { + "user_id": 12193, + "items": [ + 35341, + 1637, + 97404, + 64172, + 11653 + ], + "created_at": "2025-01-26T08:03:39.410852", + "updated_at": "2025-04-30T10:05:40.339807" + }, + { + "user_id": 23281, + "items": [ + 28795, + 23475, + 36254, + 43418, + 9141 + ], + "created_at": "2024-05-05T03:25:02.551544", + "updated_at": "2025-04-14T07:47:53.566300" + }, + { + "user_id": 42413, + "items": [ + 20548, + 50605, + 89541, + 25455, + 58640 + ], + "created_at": "2024-02-06T04:19:42.757488", + "updated_at": "2024-10-20T13:23:19.003321" + }, + { + "user_id": 43833, + "items": [ + 55706, + 76971, + 37058, + 78518, + 84708 + ], + "created_at": "2024-08-27T17:20:36.725392", + "updated_at": "2024-10-01T13:46:27.506003" + }, + { + "user_id": 30415, + "items": [ + 5503, + 27574, + 45591, + 90945, + 29992 + ], + "created_at": "2025-04-27T07:39:24.555027", + "updated_at": "2025-04-30T22:59:11.244293" + }, + { + "user_id": 33428, + "items": [ + 29735, + 35985, + 79067, + 35765, + 77662 + ], + "created_at": "2025-06-10T13:00:13.019787", + "updated_at": "2025-06-24T22:15:36.157705" + }, + { + "user_id": 70349, + "items": [ + 31424, + 44311, + 778, + 89408, + 47113 + ], + "created_at": "2025-01-20T12:02:44.025484", + "updated_at": "2025-06-28T11:42:08.018338" + }, + { + "user_id": 87963, + "items": [ + 84343, + 263, + 30717, + 50567, + 41766 + ], + "created_at": "2024-09-11T07:09:18.303783", + "updated_at": "2025-04-05T03:45:25.995456" + }, + { + "user_id": 80506, + "items": [ + 82208, + 84343, + 429, + 44969, + 13660 + ], + "created_at": "2023-12-03T06:00:04.916387", + "updated_at": "2025-08-04T08:58:46.691254" + }, + { + "user_id": 27463, + "items": [ + 98444, + 38204, + 91636, + 73274, + 53341 + ], + "created_at": "2024-08-18T00:02:39.782992", + "updated_at": "2025-07-25T23:24:54.016888" + }, + { + "user_id": 51822, + "items": [ + 763, + 32832, + 50890, + 60820, + 18688 + ], + "created_at": "2025-03-19T08:55:16.984175", + "updated_at": "2025-04-27T17:40:16.462508" + }, + { + "user_id": 42510, + "items": [ + 71202, + 64905, + 13917, + 46689, + 27637 + ], + "created_at": "2024-12-29T11:23:40.752227", + "updated_at": "2025-08-02T00:10:59.130021" + }, + { + "user_id": 86429, + "items": [ + 66570, + 10658, + 66526, + 45643, + 40193 + ], + "created_at": "2024-12-10T20:56:43.601838", + "updated_at": "2025-04-16T11:37:14.014218" + }, + { + "user_id": 97333, + "items": [ + 10658, + 47356, + 90015, + 30124, + 73274 + ], + "created_at": "2025-02-16T00:57:10.667349", + "updated_at": "2025-04-22T23:45:13.907373" + }, + { + "user_id": 64720, + "items": [ + 9390, + 52880, + 93891, + 617, + 35525 + ], + "created_at": "2023-10-31T09:07:38.724214", + "updated_at": "2025-01-31T21:11:34.720568" + }, + { + "user_id": 82937, + "items": [ + 92390, + 44614, + 69557, + 36522, + 82885 + ], + "created_at": "2025-04-08T20:26:05.847389", + "updated_at": "2025-06-30T09:56:06.807852" + }, + { + "user_id": 88473, + "items": [ + 38719, + 23388, + 89657, + 52695, + 27414 + ], + "created_at": "2024-07-18T12:45:04.951246", + "updated_at": "2025-02-07T21:42:02.606908" + }, + { + "user_id": 24148, + "items": [ + 16435, + 67146, + 13966, + 8362, + 58627 + ], + "created_at": "2024-06-26T09:48:18.022699", + "updated_at": "2024-09-08T16:13:51.562080" + }, + { + "user_id": 39562, + "items": [ + 11319, + 76245, + 29992, + 26891, + 55214 + ], + "created_at": "2024-03-10T07:53:52.018909", + "updated_at": "2024-05-22T17:03:11.189580" + }, + { + "user_id": 25631, + "items": [ + 14000, + 70483, + 5377, + 8071, + 52256 + ], + "created_at": "2024-10-31T02:15:18.339001", + "updated_at": "2025-05-12T03:46:29.623417" + }, + { + "user_id": 64587, + "items": [ + 42294, + 90957, + 55309, + 66312, + 24864 + ], + "created_at": "2023-11-04T23:42:59.916236", + "updated_at": "2024-09-27T17:48:47.236319" + }, + { + "user_id": 99298, + "items": [ + 24375, + 27347, + 37113, + 32578, + 12258 + ], + "created_at": "2024-06-13T16:59:55.934960", + "updated_at": "2025-06-29T16:56:30.860606" + }, + { + "user_id": 88965, + "items": [ + 1247, + 73870, + 61519, + 10647, + 26885 + ], + "created_at": "2024-05-29T18:25:30.050021", + "updated_at": "2024-06-25T02:27:29.634654" + }, + { + "user_id": 60115, + "items": [ + 33424, + 70483, + 60013, + 27619, + 76455 + ], + "created_at": "2024-03-15T09:23:57.816227", + "updated_at": "2024-06-26T18:36:36.221283" + }, + { + "user_id": 27501, + "items": [ + 29735, + 76398, + 49339, + 76256, + 54713 + ], + "created_at": "2023-10-20T17:54:02.839155", + "updated_at": "2023-10-28T23:19:14.941742" + }, + { + "user_id": 20850, + "items": [ + 59403, + 41398, + 44614, + 82765, + 11319 + ], + "created_at": "2025-05-16T18:51:50.609166", + "updated_at": "2025-05-25T13:04:58.675591" + }, + { + "user_id": 60114, + "items": [ + 63999, + 21036, + 26790, + 75164, + 49843 + ], + "created_at": "2023-10-28T15:52:23.187162", + "updated_at": "2024-11-12T18:28:33.276519" + }, + { + "user_id": 12191, + "items": [ + 55493, + 92529, + 62350, + 92511, + 23523 + ], + "created_at": "2023-10-13T07:18:28.454024", + "updated_at": "2023-12-16T14:35:46.663191" + }, + { + "user_id": 74628, + "items": [ + 23388, + 29735, + 47436, + 29790, + 81719 + ], + "created_at": "2023-09-06T13:07:24.995349", + "updated_at": "2025-01-14T13:22:30.347707" + }, + { + "user_id": 38062, + "items": [ + 23523, + 78518, + 46134, + 66766, + 21500 + ], + "created_at": "2024-09-14T11:30:34.455611", + "updated_at": "2024-11-16T00:31:27.780196" + }, + { + "user_id": 64807, + "items": [ + 22572, + 29418, + 67497, + 87165, + 68393 + ], + "created_at": "2023-09-26T22:37:19.650904", + "updated_at": "2024-12-08T18:42:40.310021" + }, + { + "user_id": 48369, + "items": [ + 52213, + 66378, + 32536, + 76059, + 27768 + ], + "created_at": "2024-12-03T03:38:46.022698", + "updated_at": "2025-03-09T09:02:08.244017" + }, + { + "user_id": 54562, + "items": [ + 97404, + 59541, + 66378, + 74342, + 79681 + ], + "created_at": "2024-07-28T03:50:45.937301", + "updated_at": "2024-11-16T06:55:51.951644" + }, + { + "user_id": 46047, + "items": [ + 74654, + 90897, + 25254, + 47436, + 71569 + ], + "created_at": "2024-04-16T17:27:09.810049", + "updated_at": "2024-05-25T09:14:22.974779" + }, + { + "user_id": 31641, + "items": [ + 1637, + 52793, + 22055, + 59856, + 26577 + ], + "created_at": "2025-03-01T09:16:42.735340", + "updated_at": "2025-06-05T12:33:11.633533" + }, + { + "user_id": 92174, + "items": [ + 81178, + 58627, + 38586, + 90957, + 47526 + ], + "created_at": "2024-12-11T04:41:36.516678", + "updated_at": "2025-01-04T05:49:11.376440" + }, + { + "user_id": 30353, + "items": [ + 31218, + 81879, + 27546, + 33239, + 1247 + ], + "created_at": "2024-09-18T11:19:51.915329", + "updated_at": "2025-02-01T08:35:42.191323" + }, + { + "user_id": 62648, + "items": [ + 11994, + 87453, + 2098, + 50664, + 39364 + ], + "created_at": "2024-11-06T05:44:15.093741", + "updated_at": "2025-07-19T23:52:03.666179" + }, + { + "user_id": 54821, + "items": [ + 88998, + 33261, + 2365, + 41398, + 98269 + ], + "created_at": "2024-05-23T14:59:15.152362", + "updated_at": "2025-02-14T13:28:16.264710" + }, + { + "user_id": 82332, + "items": [ + 26891, + 42545, + 61519, + 76059, + 50664 + ], + "created_at": "2024-06-29T10:22:50.455090", + "updated_at": "2024-09-19T21:16:27.468500" + }, + { + "user_id": 14395, + "items": [ + 80184, + 38586, + 93347, + 88080, + 43243 + ], + "created_at": "2024-09-27T16:48:24.520550", + "updated_at": "2024-11-08T16:29:18.881674" + }, + { + "user_id": 92112, + "items": [ + 84527, + 7510, + 9107, + 50567, + 32080 + ], + "created_at": "2024-05-08T16:00:30.136501", + "updated_at": "2025-01-18T14:38:05.887460" + }, + { + "user_id": 16290, + "items": [ + 95971, + 27027, + 23180, + 47236, + 32006 + ], + "created_at": "2024-04-08T17:48:33.598171", + "updated_at": "2024-10-06T06:36:18.543180" + }, + { + "user_id": 20844, + "items": [ + 30164, + 12145, + 96897, + 96672, + 37482 + ], + "created_at": "2025-01-17T02:08:33.585216", + "updated_at": "2025-08-04T16:40:19.061692" + }, + { + "user_id": 30716, + "items": [ + 62397, + 87453, + 5377, + 81178, + 68833 + ], + "created_at": "2024-03-26T22:31:59.015745", + "updated_at": "2024-10-04T03:09:58.851190" + }, + { + "user_id": 20466, + "items": [ + 84069, + 66766, + 70512, + 44933, + 64931 + ], + "created_at": "2024-05-01T06:44:18.657723", + "updated_at": "2025-07-28T06:56:54.273081" + }, + { + "user_id": 12157, + "items": [ + 59373, + 92031, + 67732, + 42452, + 44761 + ], + "created_at": "2023-08-25T18:22:34.851562", + "updated_at": "2023-12-23T14:55:53.696173" + }, + { + "user_id": 94630, + "items": [ + 81245, + 35985, + 71089, + 36254, + 38719 + ], + "created_at": "2025-08-03T00:29:53.690852", + "updated_at": "2025-08-03T16:55:47.698908" + } + ], + "total": 1000, + "page": 1, + "size": 50, + "pages": 20 +} \ No newline at end of file diff --git a/src/data_pipelines/data_output/tracks_20250806_224023.json b/src/data_pipelines/data_output/tracks_20250806_224023.json new file mode 100644 index 0000000..4cba581 --- /dev/null +++ b/src/data_pipelines/data_output/tracks_20250806_224023.json @@ -0,0 +1,558 @@ +{ + "items": [ + { + "id": 56035, + "name": "behind", + "artist": "Brandon Bush", + "songwriters": "Jerry Ortega", + "duration": "31:05", + "genres": "site", + "album": "road", + "created_at": "2024-07-05T18:11:40.374680", + "updated_at": "2024-11-28T09:54:00.964057" + }, + { + "id": 98052, + "name": "white", + "artist": "Joyce Mendoza", + "songwriters": "Shelly Woodard", + "duration": "17:08", + "genres": "wrong", + "album": "last", + "created_at": "2025-03-06T15:13:22.324062", + "updated_at": "2024-08-29T04:33:44.729495" + }, + { + "id": 65376, + "name": "and", + "artist": "Nicholas Smith", + "songwriters": "Johnathan Wilson", + "duration": "08:17", + "genres": "main", + "album": "ready", + "created_at": "2024-03-02T01:57:33.160135", + "updated_at": "2025-03-02T17:32:38.153991" + }, + { + "id": 35029, + "name": "local", + "artist": "Nicole Ramirez", + "songwriters": "Seth Lam", + "duration": "34:30", + "genres": "machine", + "album": "this", + "created_at": "2024-01-16T08:44:01.332682", + "updated_at": "2025-05-23T23:50:53.097695" + }, + { + "id": 30957, + "name": "drive", + "artist": "Kenneth Dean", + "songwriters": "Christina Martin", + "duration": "51:14", + "genres": "stage", + "album": "according", + "created_at": "2024-11-15T13:27:57.598504", + "updated_at": "2025-06-28T00:29:00.467366" + }, + { + "id": 49450, + "name": "throughout", + "artist": "Robert Rubio", + "songwriters": "Ashley Andrews", + "duration": "37:30", + "genres": "beyond", + "album": "type", + "created_at": "2025-05-21T12:20:16.278525", + "updated_at": "2025-04-17T04:51:45.390046" + }, + { + "id": 10151, + "name": "share", + "artist": "Michael Hernandez", + "songwriters": "Peter Guerra", + "duration": "09:22", + "genres": "family", + "album": "think", + "created_at": "2025-07-06T01:37:59.145544", + "updated_at": "2025-04-26T19:22:05.535582" + }, + { + "id": 80141, + "name": "he", + "artist": "Juan Allen", + "songwriters": "Christina Sims", + "duration": "36:50", + "genres": "there", + "album": "accept", + "created_at": "2025-02-21T22:57:14.130433", + "updated_at": "2024-10-24T23:02:04.098012" + }, + { + "id": 14415, + "name": "sell", + "artist": "Kenneth Lee", + "songwriters": "Kenneth Hernandez", + "duration": "39:46", + "genres": "ever", + "album": "order", + "created_at": "2024-01-16T16:38:04.014817", + "updated_at": "2025-02-07T10:52:47.774027" + }, + { + "id": 70867, + "name": "reflect", + "artist": "Julie Ayers", + "songwriters": "John Smith", + "duration": "29:53", + "genres": "by", + "album": "trade", + "created_at": "2024-02-29T11:48:02.096308", + "updated_at": "2025-07-07T20:36:41.968383" + }, + { + "id": 433, + "name": "your", + "artist": "Kristina Snyder", + "songwriters": "Eric Holder", + "duration": "30:17", + "genres": "operation", + "album": "here", + "created_at": "2024-10-18T20:12:14.428728", + "updated_at": "2025-07-07T14:58:39.717847" + }, + { + "id": 98407, + "name": "design", + "artist": "Laura Beck", + "songwriters": "Adam Morgan", + "duration": "39:51", + "genres": "everyone", + "album": "participant", + "created_at": "2024-08-10T20:59:21.212239", + "updated_at": "2025-08-05T16:43:44.750309" + }, + { + "id": 10315, + "name": "decade", + "artist": "Michael Hunter", + "songwriters": "Mary Horn", + "duration": "47:33", + "genres": "responsibility", + "album": "already", + "created_at": "2023-11-24T00:55:39.100431", + "updated_at": "2024-08-22T20:58:06.943249" + }, + { + "id": 33147, + "name": "sort", + "artist": "Karina Lawson", + "songwriters": "Karen Hoover", + "duration": "21:42", + "genres": "test", + "album": "understand", + "created_at": "2024-09-06T12:17:19.000168", + "updated_at": "2025-02-06T15:16:19.888698" + }, + { + "id": 50567, + "name": "state", + "artist": "Shawn Livingston", + "songwriters": "Chad Ward", + "duration": "24:16", + "genres": "deep", + "album": "economy", + "created_at": "2024-01-28T09:10:39.587416", + "updated_at": "2024-08-23T03:46:28.875294" + }, + { + "id": 78723, + "name": "run", + "artist": "April Lopez", + "songwriters": "Brad Williams", + "duration": "07:06", + "genres": "serious", + "album": "college", + "created_at": "2024-01-15T09:49:32.600155", + "updated_at": "2024-09-27T22:39:56.652902" + }, + { + "id": 45618, + "name": "game", + "artist": "Becky Allen", + "songwriters": "Veronica Rodriguez", + "duration": "16:42", + "genres": "phone", + "album": "worker", + "created_at": "2024-03-25T15:32:23.570874", + "updated_at": "2024-11-14T05:13:11.861487" + }, + { + "id": 23180, + "name": "crime", + "artist": "Corey Elliott", + "songwriters": "Kevin Cox", + "duration": "48:33", + "genres": "evidence", + "album": "attack", + "created_at": "2024-10-21T09:42:06.977851", + "updated_at": "2025-05-23T21:12:36.288601" + }, + { + "id": 49404, + "name": "student", + "artist": "Christopher Mills", + "songwriters": "Derek Gray", + "duration": "12:18", + "genres": "dinner", + "album": "group", + "created_at": "2024-12-02T23:15:53.062690", + "updated_at": "2025-02-13T06:34:48.727062" + }, + { + "id": 5469, + "name": "others", + "artist": "Larry Russell", + "songwriters": "Amy Martin", + "duration": "48:57", + "genres": "range", + "album": "race", + "created_at": "2023-09-28T10:02:18.827897", + "updated_at": "2025-05-27T14:35:37.899455" + }, + { + "id": 2365, + "name": "cost", + "artist": "Dawn Jackson", + "songwriters": "William Brown", + "duration": "34:21", + "genres": "deal", + "album": "community", + "created_at": "2024-08-21T15:58:56.457280", + "updated_at": "2025-03-25T08:12:28.320712" + }, + { + "id": 55665, + "name": "within", + "artist": "Michael Garcia", + "songwriters": "Deborah Scott", + "duration": "59:09", + "genres": "popular", + "album": "with", + "created_at": "2024-03-29T16:58:51.942397", + "updated_at": "2024-12-13T17:59:23.250523" + }, + { + "id": 33444, + "name": "next", + "artist": "Paul Bailey", + "songwriters": "Rachel Cruz", + "duration": "28:36", + "genres": "visit", + "album": "stand", + "created_at": "2024-08-28T19:00:31.480374", + "updated_at": "2025-06-21T22:01:55.144124" + }, + { + "id": 26453, + "name": "run", + "artist": "Dana Rogers", + "songwriters": "Larry Johnson", + "duration": "59:31", + "genres": "mouth", + "album": "make", + "created_at": "2024-08-25T15:46:51.778530", + "updated_at": "2025-02-05T18:52:43.605627" + }, + { + "id": 46705, + "name": "rule", + "artist": "Kim Thompson", + "songwriters": "Philip Taylor", + "duration": "33:13", + "genres": "civil", + "album": "available", + "created_at": "2025-02-02T22:04:13.867199", + "updated_at": "2025-06-17T10:33:22.374317" + }, + { + "id": 9390, + "name": "treat", + "artist": "Jenna Harris", + "songwriters": "Xavier Cook", + "duration": "19:25", + "genres": "blue", + "album": "large", + "created_at": "2025-06-05T04:42:29.733376", + "updated_at": "2025-06-02T02:21:46.175613" + }, + { + "id": 48851, + "name": "note", + "artist": "Emma Underwood", + "songwriters": "Jenna Blankenship", + "duration": "14:00", + "genres": "away", + "album": "shoulder", + "created_at": "2025-07-17T22:51:42.500066", + "updated_at": "2025-04-16T23:48:38.428932" + }, + { + "id": 90015, + "name": "like", + "artist": "Emily Huffman", + "songwriters": "Keith Morrison", + "duration": "44:10", + "genres": "too", + "album": "probably", + "created_at": "2024-09-01T14:43:23.345860", + "updated_at": "2024-12-31T18:36:52.885773" + }, + { + "id": 65700, + "name": "friend", + "artist": "Teresa Craig", + "songwriters": "Heather Salazar", + "duration": "46:34", + "genres": "reduce", + "album": "identify", + "created_at": "2024-11-13T12:35:02.717983", + "updated_at": "2024-10-05T13:57:19.722797" + }, + { + "id": 24146, + "name": "seem", + "artist": "Mrs. Brittany Williams", + "songwriters": "Dr. Carol Gibson", + "duration": "31:41", + "genres": "standard", + "album": "support", + "created_at": "2024-09-10T22:11:20.118471", + "updated_at": "2024-09-23T03:26:35.926257" + }, + { + "id": 4127, + "name": "senior", + "artist": "Scott Anderson", + "songwriters": "Derek Melton", + "duration": "37:40", + "genres": "early", + "album": "side", + "created_at": "2023-10-16T22:41:37.541921", + "updated_at": "2024-08-08T23:25:39.188353" + }, + { + "id": 64872, + "name": "read", + "artist": "Victoria Cuevas", + "songwriters": "Samuel Jimenez", + "duration": "08:45", + "genres": "fire", + "album": "agree", + "created_at": "2023-08-28T00:30:53.321923", + "updated_at": "2025-04-17T16:00:39.677695" + }, + { + "id": 50986, + "name": "protect", + "artist": "Alicia Ortiz", + "songwriters": "Bridget Nelson", + "duration": "38:42", + "genres": "exist", + "album": "rise", + "created_at": "2025-03-02T05:40:17.629057", + "updated_at": "2025-08-03T01:02:13.731266" + }, + { + "id": 31970, + "name": "base", + "artist": "Kim Day", + "songwriters": "Edward Rodriguez", + "duration": "03:41", + "genres": "road", + "album": "consider", + "created_at": "2025-07-16T01:58:48.987223", + "updated_at": "2024-08-11T21:21:56.143776" + }, + { + "id": 91630, + "name": "sport", + "artist": "Kimberly Rice DVM", + "songwriters": "Jeff Ramirez", + "duration": "35:18", + "genres": "hotel", + "album": "especially", + "created_at": "2024-02-24T05:28:23.736745", + "updated_at": "2025-03-18T12:40:59.782340" + }, + { + "id": 80885, + "name": "particularly", + "artist": "Teresa Holt", + "songwriters": "Sonia Hamilton", + "duration": "49:05", + "genres": "city", + "album": "shake", + "created_at": "2025-01-20T23:42:39.294559", + "updated_at": "2025-04-20T20:06:57.176246" + }, + { + "id": 25115, + "name": "more", + "artist": "Brian Miller", + "songwriters": "Isaac Bradley", + "duration": "05:47", + "genres": "bar", + "album": "lose", + "created_at": "2023-11-18T04:51:15.034712", + "updated_at": "2024-09-10T09:26:53.508720" + }, + { + "id": 50664, + "name": "six", + "artist": "Benjamin Smith", + "songwriters": "Alan Green", + "duration": "57:09", + "genres": "health", + "album": "capital", + "created_at": "2024-03-31T18:23:42.357853", + "updated_at": "2024-09-05T19:13:55.239903" + }, + { + "id": 71124, + "name": "activity", + "artist": "Nicole Hansen", + "songwriters": "Jennifer Barnes", + "duration": "45:41", + "genres": "what", + "album": "no", + "created_at": "2024-10-01T05:07:34.514945", + "updated_at": "2024-12-13T06:58:15.876401" + }, + { + "id": 81719, + "name": "partner", + "artist": "Kevin Ruiz", + "songwriters": "Randy Smith", + "duration": "09:47", + "genres": "plan", + "album": "force", + "created_at": "2024-08-09T20:35:59.542399", + "updated_at": "2025-01-14T08:19:20.720432" + }, + { + "id": 40356, + "name": "it", + "artist": "Jason Nguyen", + "songwriters": "John Jimenez", + "duration": "42:24", + "genres": "majority", + "album": "executive", + "created_at": "2025-05-29T03:50:59.964925", + "updated_at": "2025-02-07T14:19:54.895995" + }, + { + "id": 16386, + "name": "worry", + "artist": "Joseph Myers", + "songwriters": "Matthew Hughes", + "duration": "43:30", + "genres": "charge", + "album": "crime", + "created_at": "2023-09-25T16:24:06.256056", + "updated_at": "2025-01-01T04:28:23.569100" + }, + { + "id": 28639, + "name": "respond", + "artist": "David Fletcher", + "songwriters": "Renee Castillo", + "duration": "32:22", + "genres": "seem", + "album": "shake", + "created_at": "2025-04-13T16:45:01.776877", + "updated_at": "2024-10-28T15:53:32.953502" + }, + { + "id": 60983, + "name": "this", + "artist": "Michael Young", + "songwriters": "Mrs. Danielle Taylor", + "duration": "13:11", + "genres": "she", + "album": "it", + "created_at": "2025-04-24T01:24:10.507766", + "updated_at": "2024-10-05T19:13:19.678066" + }, + { + "id": 94976, + "name": "bar", + "artist": "Geoffrey Huff", + "songwriters": "Alexander Wheeler", + "duration": "40:59", + "genres": "none", + "album": "guy", + "created_at": "2024-08-14T11:21:39.322599", + "updated_at": "2025-05-31T07:44:09.858530" + }, + { + "id": 81594, + "name": "until", + "artist": "Kelly Gonzalez", + "songwriters": "Jeffery Sims", + "duration": "19:35", + "genres": "age", + "album": "fight", + "created_at": "2025-01-09T09:48:37.202185", + "updated_at": "2025-05-20T12:29:41.046264" + }, + { + "id": 25024, + "name": "camera", + "artist": "Chelsea Snyder", + "songwriters": "Shelby Wilson", + "duration": "42:13", + "genres": "smile", + "album": "true", + "created_at": "2024-06-30T18:02:57.924429", + "updated_at": "2025-05-06T02:25:08.782060" + }, + { + "id": 60852, + "name": "move", + "artist": "Beverly Smith", + "songwriters": "Angel Grimes", + "duration": "38:46", + "genres": "probably", + "album": "old", + "created_at": "2024-10-28T04:06:27.694137", + "updated_at": "2025-01-27T06:12:50.079832" + }, + { + "id": 35765, + "name": "lead", + "artist": "Riley Hunt", + "songwriters": "Michelle Kane", + "duration": "04:15", + "genres": "school", + "album": "eye", + "created_at": "2024-09-19T12:06:53.773067", + "updated_at": "2025-05-30T19:20:30.716617" + }, + { + "id": 93775, + "name": "month", + "artist": "Brandon Byrd", + "songwriters": "Dana Campbell", + "duration": "37:53", + "genres": "prepare", + "album": "agree", + "created_at": "2025-03-18T07:38:11.348541", + "updated_at": "2025-01-28T06:57:54.139586" + } + ], + "total": 1000, + "page": 1, + "size": 50, + "pages": 20 +} \ No newline at end of file diff --git a/src/data_pipelines/data_output/tracks_20250806_231914.json b/src/data_pipelines/data_output/tracks_20250806_231914.json new file mode 100644 index 0000000..4cba581 --- /dev/null +++ b/src/data_pipelines/data_output/tracks_20250806_231914.json @@ -0,0 +1,558 @@ +{ + "items": [ + { + "id": 56035, + "name": "behind", + "artist": "Brandon Bush", + "songwriters": "Jerry Ortega", + "duration": "31:05", + "genres": "site", + "album": "road", + "created_at": "2024-07-05T18:11:40.374680", + "updated_at": "2024-11-28T09:54:00.964057" + }, + { + "id": 98052, + "name": "white", + "artist": "Joyce Mendoza", + "songwriters": "Shelly Woodard", + "duration": "17:08", + "genres": "wrong", + "album": "last", + "created_at": "2025-03-06T15:13:22.324062", + "updated_at": "2024-08-29T04:33:44.729495" + }, + { + "id": 65376, + "name": "and", + "artist": "Nicholas Smith", + "songwriters": "Johnathan Wilson", + "duration": "08:17", + "genres": "main", + "album": "ready", + "created_at": "2024-03-02T01:57:33.160135", + "updated_at": "2025-03-02T17:32:38.153991" + }, + { + "id": 35029, + "name": "local", + "artist": "Nicole Ramirez", + "songwriters": "Seth Lam", + "duration": "34:30", + "genres": "machine", + "album": "this", + "created_at": "2024-01-16T08:44:01.332682", + "updated_at": "2025-05-23T23:50:53.097695" + }, + { + "id": 30957, + "name": "drive", + "artist": "Kenneth Dean", + "songwriters": "Christina Martin", + "duration": "51:14", + "genres": "stage", + "album": "according", + "created_at": "2024-11-15T13:27:57.598504", + "updated_at": "2025-06-28T00:29:00.467366" + }, + { + "id": 49450, + "name": "throughout", + "artist": "Robert Rubio", + "songwriters": "Ashley Andrews", + "duration": "37:30", + "genres": "beyond", + "album": "type", + "created_at": "2025-05-21T12:20:16.278525", + "updated_at": "2025-04-17T04:51:45.390046" + }, + { + "id": 10151, + "name": "share", + "artist": "Michael Hernandez", + "songwriters": "Peter Guerra", + "duration": "09:22", + "genres": "family", + "album": "think", + "created_at": "2025-07-06T01:37:59.145544", + "updated_at": "2025-04-26T19:22:05.535582" + }, + { + "id": 80141, + "name": "he", + "artist": "Juan Allen", + "songwriters": "Christina Sims", + "duration": "36:50", + "genres": "there", + "album": "accept", + "created_at": "2025-02-21T22:57:14.130433", + "updated_at": "2024-10-24T23:02:04.098012" + }, + { + "id": 14415, + "name": "sell", + "artist": "Kenneth Lee", + "songwriters": "Kenneth Hernandez", + "duration": "39:46", + "genres": "ever", + "album": "order", + "created_at": "2024-01-16T16:38:04.014817", + "updated_at": "2025-02-07T10:52:47.774027" + }, + { + "id": 70867, + "name": "reflect", + "artist": "Julie Ayers", + "songwriters": "John Smith", + "duration": "29:53", + "genres": "by", + "album": "trade", + "created_at": "2024-02-29T11:48:02.096308", + "updated_at": "2025-07-07T20:36:41.968383" + }, + { + "id": 433, + "name": "your", + "artist": "Kristina Snyder", + "songwriters": "Eric Holder", + "duration": "30:17", + "genres": "operation", + "album": "here", + "created_at": "2024-10-18T20:12:14.428728", + "updated_at": "2025-07-07T14:58:39.717847" + }, + { + "id": 98407, + "name": "design", + "artist": "Laura Beck", + "songwriters": "Adam Morgan", + "duration": "39:51", + "genres": "everyone", + "album": "participant", + "created_at": "2024-08-10T20:59:21.212239", + "updated_at": "2025-08-05T16:43:44.750309" + }, + { + "id": 10315, + "name": "decade", + "artist": "Michael Hunter", + "songwriters": "Mary Horn", + "duration": "47:33", + "genres": "responsibility", + "album": "already", + "created_at": "2023-11-24T00:55:39.100431", + "updated_at": "2024-08-22T20:58:06.943249" + }, + { + "id": 33147, + "name": "sort", + "artist": "Karina Lawson", + "songwriters": "Karen Hoover", + "duration": "21:42", + "genres": "test", + "album": "understand", + "created_at": "2024-09-06T12:17:19.000168", + "updated_at": "2025-02-06T15:16:19.888698" + }, + { + "id": 50567, + "name": "state", + "artist": "Shawn Livingston", + "songwriters": "Chad Ward", + "duration": "24:16", + "genres": "deep", + "album": "economy", + "created_at": "2024-01-28T09:10:39.587416", + "updated_at": "2024-08-23T03:46:28.875294" + }, + { + "id": 78723, + "name": "run", + "artist": "April Lopez", + "songwriters": "Brad Williams", + "duration": "07:06", + "genres": "serious", + "album": "college", + "created_at": "2024-01-15T09:49:32.600155", + "updated_at": "2024-09-27T22:39:56.652902" + }, + { + "id": 45618, + "name": "game", + "artist": "Becky Allen", + "songwriters": "Veronica Rodriguez", + "duration": "16:42", + "genres": "phone", + "album": "worker", + "created_at": "2024-03-25T15:32:23.570874", + "updated_at": "2024-11-14T05:13:11.861487" + }, + { + "id": 23180, + "name": "crime", + "artist": "Corey Elliott", + "songwriters": "Kevin Cox", + "duration": "48:33", + "genres": "evidence", + "album": "attack", + "created_at": "2024-10-21T09:42:06.977851", + "updated_at": "2025-05-23T21:12:36.288601" + }, + { + "id": 49404, + "name": "student", + "artist": "Christopher Mills", + "songwriters": "Derek Gray", + "duration": "12:18", + "genres": "dinner", + "album": "group", + "created_at": "2024-12-02T23:15:53.062690", + "updated_at": "2025-02-13T06:34:48.727062" + }, + { + "id": 5469, + "name": "others", + "artist": "Larry Russell", + "songwriters": "Amy Martin", + "duration": "48:57", + "genres": "range", + "album": "race", + "created_at": "2023-09-28T10:02:18.827897", + "updated_at": "2025-05-27T14:35:37.899455" + }, + { + "id": 2365, + "name": "cost", + "artist": "Dawn Jackson", + "songwriters": "William Brown", + "duration": "34:21", + "genres": "deal", + "album": "community", + "created_at": "2024-08-21T15:58:56.457280", + "updated_at": "2025-03-25T08:12:28.320712" + }, + { + "id": 55665, + "name": "within", + "artist": "Michael Garcia", + "songwriters": "Deborah Scott", + "duration": "59:09", + "genres": "popular", + "album": "with", + "created_at": "2024-03-29T16:58:51.942397", + "updated_at": "2024-12-13T17:59:23.250523" + }, + { + "id": 33444, + "name": "next", + "artist": "Paul Bailey", + "songwriters": "Rachel Cruz", + "duration": "28:36", + "genres": "visit", + "album": "stand", + "created_at": "2024-08-28T19:00:31.480374", + "updated_at": "2025-06-21T22:01:55.144124" + }, + { + "id": 26453, + "name": "run", + "artist": "Dana Rogers", + "songwriters": "Larry Johnson", + "duration": "59:31", + "genres": "mouth", + "album": "make", + "created_at": "2024-08-25T15:46:51.778530", + "updated_at": "2025-02-05T18:52:43.605627" + }, + { + "id": 46705, + "name": "rule", + "artist": "Kim Thompson", + "songwriters": "Philip Taylor", + "duration": "33:13", + "genres": "civil", + "album": "available", + "created_at": "2025-02-02T22:04:13.867199", + "updated_at": "2025-06-17T10:33:22.374317" + }, + { + "id": 9390, + "name": "treat", + "artist": "Jenna Harris", + "songwriters": "Xavier Cook", + "duration": "19:25", + "genres": "blue", + "album": "large", + "created_at": "2025-06-05T04:42:29.733376", + "updated_at": "2025-06-02T02:21:46.175613" + }, + { + "id": 48851, + "name": "note", + "artist": "Emma Underwood", + "songwriters": "Jenna Blankenship", + "duration": "14:00", + "genres": "away", + "album": "shoulder", + "created_at": "2025-07-17T22:51:42.500066", + "updated_at": "2025-04-16T23:48:38.428932" + }, + { + "id": 90015, + "name": "like", + "artist": "Emily Huffman", + "songwriters": "Keith Morrison", + "duration": "44:10", + "genres": "too", + "album": "probably", + "created_at": "2024-09-01T14:43:23.345860", + "updated_at": "2024-12-31T18:36:52.885773" + }, + { + "id": 65700, + "name": "friend", + "artist": "Teresa Craig", + "songwriters": "Heather Salazar", + "duration": "46:34", + "genres": "reduce", + "album": "identify", + "created_at": "2024-11-13T12:35:02.717983", + "updated_at": "2024-10-05T13:57:19.722797" + }, + { + "id": 24146, + "name": "seem", + "artist": "Mrs. Brittany Williams", + "songwriters": "Dr. Carol Gibson", + "duration": "31:41", + "genres": "standard", + "album": "support", + "created_at": "2024-09-10T22:11:20.118471", + "updated_at": "2024-09-23T03:26:35.926257" + }, + { + "id": 4127, + "name": "senior", + "artist": "Scott Anderson", + "songwriters": "Derek Melton", + "duration": "37:40", + "genres": "early", + "album": "side", + "created_at": "2023-10-16T22:41:37.541921", + "updated_at": "2024-08-08T23:25:39.188353" + }, + { + "id": 64872, + "name": "read", + "artist": "Victoria Cuevas", + "songwriters": "Samuel Jimenez", + "duration": "08:45", + "genres": "fire", + "album": "agree", + "created_at": "2023-08-28T00:30:53.321923", + "updated_at": "2025-04-17T16:00:39.677695" + }, + { + "id": 50986, + "name": "protect", + "artist": "Alicia Ortiz", + "songwriters": "Bridget Nelson", + "duration": "38:42", + "genres": "exist", + "album": "rise", + "created_at": "2025-03-02T05:40:17.629057", + "updated_at": "2025-08-03T01:02:13.731266" + }, + { + "id": 31970, + "name": "base", + "artist": "Kim Day", + "songwriters": "Edward Rodriguez", + "duration": "03:41", + "genres": "road", + "album": "consider", + "created_at": "2025-07-16T01:58:48.987223", + "updated_at": "2024-08-11T21:21:56.143776" + }, + { + "id": 91630, + "name": "sport", + "artist": "Kimberly Rice DVM", + "songwriters": "Jeff Ramirez", + "duration": "35:18", + "genres": "hotel", + "album": "especially", + "created_at": "2024-02-24T05:28:23.736745", + "updated_at": "2025-03-18T12:40:59.782340" + }, + { + "id": 80885, + "name": "particularly", + "artist": "Teresa Holt", + "songwriters": "Sonia Hamilton", + "duration": "49:05", + "genres": "city", + "album": "shake", + "created_at": "2025-01-20T23:42:39.294559", + "updated_at": "2025-04-20T20:06:57.176246" + }, + { + "id": 25115, + "name": "more", + "artist": "Brian Miller", + "songwriters": "Isaac Bradley", + "duration": "05:47", + "genres": "bar", + "album": "lose", + "created_at": "2023-11-18T04:51:15.034712", + "updated_at": "2024-09-10T09:26:53.508720" + }, + { + "id": 50664, + "name": "six", + "artist": "Benjamin Smith", + "songwriters": "Alan Green", + "duration": "57:09", + "genres": "health", + "album": "capital", + "created_at": "2024-03-31T18:23:42.357853", + "updated_at": "2024-09-05T19:13:55.239903" + }, + { + "id": 71124, + "name": "activity", + "artist": "Nicole Hansen", + "songwriters": "Jennifer Barnes", + "duration": "45:41", + "genres": "what", + "album": "no", + "created_at": "2024-10-01T05:07:34.514945", + "updated_at": "2024-12-13T06:58:15.876401" + }, + { + "id": 81719, + "name": "partner", + "artist": "Kevin Ruiz", + "songwriters": "Randy Smith", + "duration": "09:47", + "genres": "plan", + "album": "force", + "created_at": "2024-08-09T20:35:59.542399", + "updated_at": "2025-01-14T08:19:20.720432" + }, + { + "id": 40356, + "name": "it", + "artist": "Jason Nguyen", + "songwriters": "John Jimenez", + "duration": "42:24", + "genres": "majority", + "album": "executive", + "created_at": "2025-05-29T03:50:59.964925", + "updated_at": "2025-02-07T14:19:54.895995" + }, + { + "id": 16386, + "name": "worry", + "artist": "Joseph Myers", + "songwriters": "Matthew Hughes", + "duration": "43:30", + "genres": "charge", + "album": "crime", + "created_at": "2023-09-25T16:24:06.256056", + "updated_at": "2025-01-01T04:28:23.569100" + }, + { + "id": 28639, + "name": "respond", + "artist": "David Fletcher", + "songwriters": "Renee Castillo", + "duration": "32:22", + "genres": "seem", + "album": "shake", + "created_at": "2025-04-13T16:45:01.776877", + "updated_at": "2024-10-28T15:53:32.953502" + }, + { + "id": 60983, + "name": "this", + "artist": "Michael Young", + "songwriters": "Mrs. Danielle Taylor", + "duration": "13:11", + "genres": "she", + "album": "it", + "created_at": "2025-04-24T01:24:10.507766", + "updated_at": "2024-10-05T19:13:19.678066" + }, + { + "id": 94976, + "name": "bar", + "artist": "Geoffrey Huff", + "songwriters": "Alexander Wheeler", + "duration": "40:59", + "genres": "none", + "album": "guy", + "created_at": "2024-08-14T11:21:39.322599", + "updated_at": "2025-05-31T07:44:09.858530" + }, + { + "id": 81594, + "name": "until", + "artist": "Kelly Gonzalez", + "songwriters": "Jeffery Sims", + "duration": "19:35", + "genres": "age", + "album": "fight", + "created_at": "2025-01-09T09:48:37.202185", + "updated_at": "2025-05-20T12:29:41.046264" + }, + { + "id": 25024, + "name": "camera", + "artist": "Chelsea Snyder", + "songwriters": "Shelby Wilson", + "duration": "42:13", + "genres": "smile", + "album": "true", + "created_at": "2024-06-30T18:02:57.924429", + "updated_at": "2025-05-06T02:25:08.782060" + }, + { + "id": 60852, + "name": "move", + "artist": "Beverly Smith", + "songwriters": "Angel Grimes", + "duration": "38:46", + "genres": "probably", + "album": "old", + "created_at": "2024-10-28T04:06:27.694137", + "updated_at": "2025-01-27T06:12:50.079832" + }, + { + "id": 35765, + "name": "lead", + "artist": "Riley Hunt", + "songwriters": "Michelle Kane", + "duration": "04:15", + "genres": "school", + "album": "eye", + "created_at": "2024-09-19T12:06:53.773067", + "updated_at": "2025-05-30T19:20:30.716617" + }, + { + "id": 93775, + "name": "month", + "artist": "Brandon Byrd", + "songwriters": "Dana Campbell", + "duration": "37:53", + "genres": "prepare", + "album": "agree", + "created_at": "2025-03-18T07:38:11.348541", + "updated_at": "2025-01-28T06:57:54.139586" + } + ], + "total": 1000, + "page": 1, + "size": 50, + "pages": 20 +} \ No newline at end of file diff --git a/src/data_pipelines/data_output/tracks_20250806_233438.json b/src/data_pipelines/data_output/tracks_20250806_233438.json new file mode 100644 index 0000000..4cba581 --- /dev/null +++ b/src/data_pipelines/data_output/tracks_20250806_233438.json @@ -0,0 +1,558 @@ +{ + "items": [ + { + "id": 56035, + "name": "behind", + "artist": "Brandon Bush", + "songwriters": "Jerry Ortega", + "duration": "31:05", + "genres": "site", + "album": "road", + "created_at": "2024-07-05T18:11:40.374680", + "updated_at": "2024-11-28T09:54:00.964057" + }, + { + "id": 98052, + "name": "white", + "artist": "Joyce Mendoza", + "songwriters": "Shelly Woodard", + "duration": "17:08", + "genres": "wrong", + "album": "last", + "created_at": "2025-03-06T15:13:22.324062", + "updated_at": "2024-08-29T04:33:44.729495" + }, + { + "id": 65376, + "name": "and", + "artist": "Nicholas Smith", + "songwriters": "Johnathan Wilson", + "duration": "08:17", + "genres": "main", + "album": "ready", + "created_at": "2024-03-02T01:57:33.160135", + "updated_at": "2025-03-02T17:32:38.153991" + }, + { + "id": 35029, + "name": "local", + "artist": "Nicole Ramirez", + "songwriters": "Seth Lam", + "duration": "34:30", + "genres": "machine", + "album": "this", + "created_at": "2024-01-16T08:44:01.332682", + "updated_at": "2025-05-23T23:50:53.097695" + }, + { + "id": 30957, + "name": "drive", + "artist": "Kenneth Dean", + "songwriters": "Christina Martin", + "duration": "51:14", + "genres": "stage", + "album": "according", + "created_at": "2024-11-15T13:27:57.598504", + "updated_at": "2025-06-28T00:29:00.467366" + }, + { + "id": 49450, + "name": "throughout", + "artist": "Robert Rubio", + "songwriters": "Ashley Andrews", + "duration": "37:30", + "genres": "beyond", + "album": "type", + "created_at": "2025-05-21T12:20:16.278525", + "updated_at": "2025-04-17T04:51:45.390046" + }, + { + "id": 10151, + "name": "share", + "artist": "Michael Hernandez", + "songwriters": "Peter Guerra", + "duration": "09:22", + "genres": "family", + "album": "think", + "created_at": "2025-07-06T01:37:59.145544", + "updated_at": "2025-04-26T19:22:05.535582" + }, + { + "id": 80141, + "name": "he", + "artist": "Juan Allen", + "songwriters": "Christina Sims", + "duration": "36:50", + "genres": "there", + "album": "accept", + "created_at": "2025-02-21T22:57:14.130433", + "updated_at": "2024-10-24T23:02:04.098012" + }, + { + "id": 14415, + "name": "sell", + "artist": "Kenneth Lee", + "songwriters": "Kenneth Hernandez", + "duration": "39:46", + "genres": "ever", + "album": "order", + "created_at": "2024-01-16T16:38:04.014817", + "updated_at": "2025-02-07T10:52:47.774027" + }, + { + "id": 70867, + "name": "reflect", + "artist": "Julie Ayers", + "songwriters": "John Smith", + "duration": "29:53", + "genres": "by", + "album": "trade", + "created_at": "2024-02-29T11:48:02.096308", + "updated_at": "2025-07-07T20:36:41.968383" + }, + { + "id": 433, + "name": "your", + "artist": "Kristina Snyder", + "songwriters": "Eric Holder", + "duration": "30:17", + "genres": "operation", + "album": "here", + "created_at": "2024-10-18T20:12:14.428728", + "updated_at": "2025-07-07T14:58:39.717847" + }, + { + "id": 98407, + "name": "design", + "artist": "Laura Beck", + "songwriters": "Adam Morgan", + "duration": "39:51", + "genres": "everyone", + "album": "participant", + "created_at": "2024-08-10T20:59:21.212239", + "updated_at": "2025-08-05T16:43:44.750309" + }, + { + "id": 10315, + "name": "decade", + "artist": "Michael Hunter", + "songwriters": "Mary Horn", + "duration": "47:33", + "genres": "responsibility", + "album": "already", + "created_at": "2023-11-24T00:55:39.100431", + "updated_at": "2024-08-22T20:58:06.943249" + }, + { + "id": 33147, + "name": "sort", + "artist": "Karina Lawson", + "songwriters": "Karen Hoover", + "duration": "21:42", + "genres": "test", + "album": "understand", + "created_at": "2024-09-06T12:17:19.000168", + "updated_at": "2025-02-06T15:16:19.888698" + }, + { + "id": 50567, + "name": "state", + "artist": "Shawn Livingston", + "songwriters": "Chad Ward", + "duration": "24:16", + "genres": "deep", + "album": "economy", + "created_at": "2024-01-28T09:10:39.587416", + "updated_at": "2024-08-23T03:46:28.875294" + }, + { + "id": 78723, + "name": "run", + "artist": "April Lopez", + "songwriters": "Brad Williams", + "duration": "07:06", + "genres": "serious", + "album": "college", + "created_at": "2024-01-15T09:49:32.600155", + "updated_at": "2024-09-27T22:39:56.652902" + }, + { + "id": 45618, + "name": "game", + "artist": "Becky Allen", + "songwriters": "Veronica Rodriguez", + "duration": "16:42", + "genres": "phone", + "album": "worker", + "created_at": "2024-03-25T15:32:23.570874", + "updated_at": "2024-11-14T05:13:11.861487" + }, + { + "id": 23180, + "name": "crime", + "artist": "Corey Elliott", + "songwriters": "Kevin Cox", + "duration": "48:33", + "genres": "evidence", + "album": "attack", + "created_at": "2024-10-21T09:42:06.977851", + "updated_at": "2025-05-23T21:12:36.288601" + }, + { + "id": 49404, + "name": "student", + "artist": "Christopher Mills", + "songwriters": "Derek Gray", + "duration": "12:18", + "genres": "dinner", + "album": "group", + "created_at": "2024-12-02T23:15:53.062690", + "updated_at": "2025-02-13T06:34:48.727062" + }, + { + "id": 5469, + "name": "others", + "artist": "Larry Russell", + "songwriters": "Amy Martin", + "duration": "48:57", + "genres": "range", + "album": "race", + "created_at": "2023-09-28T10:02:18.827897", + "updated_at": "2025-05-27T14:35:37.899455" + }, + { + "id": 2365, + "name": "cost", + "artist": "Dawn Jackson", + "songwriters": "William Brown", + "duration": "34:21", + "genres": "deal", + "album": "community", + "created_at": "2024-08-21T15:58:56.457280", + "updated_at": "2025-03-25T08:12:28.320712" + }, + { + "id": 55665, + "name": "within", + "artist": "Michael Garcia", + "songwriters": "Deborah Scott", + "duration": "59:09", + "genres": "popular", + "album": "with", + "created_at": "2024-03-29T16:58:51.942397", + "updated_at": "2024-12-13T17:59:23.250523" + }, + { + "id": 33444, + "name": "next", + "artist": "Paul Bailey", + "songwriters": "Rachel Cruz", + "duration": "28:36", + "genres": "visit", + "album": "stand", + "created_at": "2024-08-28T19:00:31.480374", + "updated_at": "2025-06-21T22:01:55.144124" + }, + { + "id": 26453, + "name": "run", + "artist": "Dana Rogers", + "songwriters": "Larry Johnson", + "duration": "59:31", + "genres": "mouth", + "album": "make", + "created_at": "2024-08-25T15:46:51.778530", + "updated_at": "2025-02-05T18:52:43.605627" + }, + { + "id": 46705, + "name": "rule", + "artist": "Kim Thompson", + "songwriters": "Philip Taylor", + "duration": "33:13", + "genres": "civil", + "album": "available", + "created_at": "2025-02-02T22:04:13.867199", + "updated_at": "2025-06-17T10:33:22.374317" + }, + { + "id": 9390, + "name": "treat", + "artist": "Jenna Harris", + "songwriters": "Xavier Cook", + "duration": "19:25", + "genres": "blue", + "album": "large", + "created_at": "2025-06-05T04:42:29.733376", + "updated_at": "2025-06-02T02:21:46.175613" + }, + { + "id": 48851, + "name": "note", + "artist": "Emma Underwood", + "songwriters": "Jenna Blankenship", + "duration": "14:00", + "genres": "away", + "album": "shoulder", + "created_at": "2025-07-17T22:51:42.500066", + "updated_at": "2025-04-16T23:48:38.428932" + }, + { + "id": 90015, + "name": "like", + "artist": "Emily Huffman", + "songwriters": "Keith Morrison", + "duration": "44:10", + "genres": "too", + "album": "probably", + "created_at": "2024-09-01T14:43:23.345860", + "updated_at": "2024-12-31T18:36:52.885773" + }, + { + "id": 65700, + "name": "friend", + "artist": "Teresa Craig", + "songwriters": "Heather Salazar", + "duration": "46:34", + "genres": "reduce", + "album": "identify", + "created_at": "2024-11-13T12:35:02.717983", + "updated_at": "2024-10-05T13:57:19.722797" + }, + { + "id": 24146, + "name": "seem", + "artist": "Mrs. Brittany Williams", + "songwriters": "Dr. Carol Gibson", + "duration": "31:41", + "genres": "standard", + "album": "support", + "created_at": "2024-09-10T22:11:20.118471", + "updated_at": "2024-09-23T03:26:35.926257" + }, + { + "id": 4127, + "name": "senior", + "artist": "Scott Anderson", + "songwriters": "Derek Melton", + "duration": "37:40", + "genres": "early", + "album": "side", + "created_at": "2023-10-16T22:41:37.541921", + "updated_at": "2024-08-08T23:25:39.188353" + }, + { + "id": 64872, + "name": "read", + "artist": "Victoria Cuevas", + "songwriters": "Samuel Jimenez", + "duration": "08:45", + "genres": "fire", + "album": "agree", + "created_at": "2023-08-28T00:30:53.321923", + "updated_at": "2025-04-17T16:00:39.677695" + }, + { + "id": 50986, + "name": "protect", + "artist": "Alicia Ortiz", + "songwriters": "Bridget Nelson", + "duration": "38:42", + "genres": "exist", + "album": "rise", + "created_at": "2025-03-02T05:40:17.629057", + "updated_at": "2025-08-03T01:02:13.731266" + }, + { + "id": 31970, + "name": "base", + "artist": "Kim Day", + "songwriters": "Edward Rodriguez", + "duration": "03:41", + "genres": "road", + "album": "consider", + "created_at": "2025-07-16T01:58:48.987223", + "updated_at": "2024-08-11T21:21:56.143776" + }, + { + "id": 91630, + "name": "sport", + "artist": "Kimberly Rice DVM", + "songwriters": "Jeff Ramirez", + "duration": "35:18", + "genres": "hotel", + "album": "especially", + "created_at": "2024-02-24T05:28:23.736745", + "updated_at": "2025-03-18T12:40:59.782340" + }, + { + "id": 80885, + "name": "particularly", + "artist": "Teresa Holt", + "songwriters": "Sonia Hamilton", + "duration": "49:05", + "genres": "city", + "album": "shake", + "created_at": "2025-01-20T23:42:39.294559", + "updated_at": "2025-04-20T20:06:57.176246" + }, + { + "id": 25115, + "name": "more", + "artist": "Brian Miller", + "songwriters": "Isaac Bradley", + "duration": "05:47", + "genres": "bar", + "album": "lose", + "created_at": "2023-11-18T04:51:15.034712", + "updated_at": "2024-09-10T09:26:53.508720" + }, + { + "id": 50664, + "name": "six", + "artist": "Benjamin Smith", + "songwriters": "Alan Green", + "duration": "57:09", + "genres": "health", + "album": "capital", + "created_at": "2024-03-31T18:23:42.357853", + "updated_at": "2024-09-05T19:13:55.239903" + }, + { + "id": 71124, + "name": "activity", + "artist": "Nicole Hansen", + "songwriters": "Jennifer Barnes", + "duration": "45:41", + "genres": "what", + "album": "no", + "created_at": "2024-10-01T05:07:34.514945", + "updated_at": "2024-12-13T06:58:15.876401" + }, + { + "id": 81719, + "name": "partner", + "artist": "Kevin Ruiz", + "songwriters": "Randy Smith", + "duration": "09:47", + "genres": "plan", + "album": "force", + "created_at": "2024-08-09T20:35:59.542399", + "updated_at": "2025-01-14T08:19:20.720432" + }, + { + "id": 40356, + "name": "it", + "artist": "Jason Nguyen", + "songwriters": "John Jimenez", + "duration": "42:24", + "genres": "majority", + "album": "executive", + "created_at": "2025-05-29T03:50:59.964925", + "updated_at": "2025-02-07T14:19:54.895995" + }, + { + "id": 16386, + "name": "worry", + "artist": "Joseph Myers", + "songwriters": "Matthew Hughes", + "duration": "43:30", + "genres": "charge", + "album": "crime", + "created_at": "2023-09-25T16:24:06.256056", + "updated_at": "2025-01-01T04:28:23.569100" + }, + { + "id": 28639, + "name": "respond", + "artist": "David Fletcher", + "songwriters": "Renee Castillo", + "duration": "32:22", + "genres": "seem", + "album": "shake", + "created_at": "2025-04-13T16:45:01.776877", + "updated_at": "2024-10-28T15:53:32.953502" + }, + { + "id": 60983, + "name": "this", + "artist": "Michael Young", + "songwriters": "Mrs. Danielle Taylor", + "duration": "13:11", + "genres": "she", + "album": "it", + "created_at": "2025-04-24T01:24:10.507766", + "updated_at": "2024-10-05T19:13:19.678066" + }, + { + "id": 94976, + "name": "bar", + "artist": "Geoffrey Huff", + "songwriters": "Alexander Wheeler", + "duration": "40:59", + "genres": "none", + "album": "guy", + "created_at": "2024-08-14T11:21:39.322599", + "updated_at": "2025-05-31T07:44:09.858530" + }, + { + "id": 81594, + "name": "until", + "artist": "Kelly Gonzalez", + "songwriters": "Jeffery Sims", + "duration": "19:35", + "genres": "age", + "album": "fight", + "created_at": "2025-01-09T09:48:37.202185", + "updated_at": "2025-05-20T12:29:41.046264" + }, + { + "id": 25024, + "name": "camera", + "artist": "Chelsea Snyder", + "songwriters": "Shelby Wilson", + "duration": "42:13", + "genres": "smile", + "album": "true", + "created_at": "2024-06-30T18:02:57.924429", + "updated_at": "2025-05-06T02:25:08.782060" + }, + { + "id": 60852, + "name": "move", + "artist": "Beverly Smith", + "songwriters": "Angel Grimes", + "duration": "38:46", + "genres": "probably", + "album": "old", + "created_at": "2024-10-28T04:06:27.694137", + "updated_at": "2025-01-27T06:12:50.079832" + }, + { + "id": 35765, + "name": "lead", + "artist": "Riley Hunt", + "songwriters": "Michelle Kane", + "duration": "04:15", + "genres": "school", + "album": "eye", + "created_at": "2024-09-19T12:06:53.773067", + "updated_at": "2025-05-30T19:20:30.716617" + }, + { + "id": 93775, + "name": "month", + "artist": "Brandon Byrd", + "songwriters": "Dana Campbell", + "duration": "37:53", + "genres": "prepare", + "album": "agree", + "created_at": "2025-03-18T07:38:11.348541", + "updated_at": "2025-01-28T06:57:54.139586" + } + ], + "total": 1000, + "page": 1, + "size": 50, + "pages": 20 +} \ No newline at end of file diff --git a/src/data_pipelines/data_output/users_20250806_224023.json b/src/data_pipelines/data_output/users_20250806_224023.json new file mode 100644 index 0000000..4793cab --- /dev/null +++ b/src/data_pipelines/data_output/users_20250806_224023.json @@ -0,0 +1,508 @@ +{ + "items": [ + { + "id": 86165, + "first_name": "Rebecca", + "last_name": "Mendoza", + "email": "jkerr@example.com", + "gender": "Non-binary", + "favorite_genres": "Folk", + "created_at": "2023-10-19T20:35:49.957770", + "updated_at": "2025-01-08T13:21:56.640122" + }, + { + "id": 33653, + "first_name": "John", + "last_name": "Smith", + "email": "sarahcarpenter@example.com", + "gender": "Genderfluid", + "favorite_genres": "Classical", + "created_at": "2024-05-25T07:15:35.622802", + "updated_at": "2025-01-26T05:37:13.713386" + }, + { + "id": 12193, + "first_name": "Tina", + "last_name": "Henderson", + "email": "brian57@example.net", + "gender": "Gender nonconforming", + "favorite_genres": "Folk", + "created_at": "2024-04-27T04:56:27.293688", + "updated_at": "2025-01-06T03:09:21.388379" + }, + { + "id": 23281, + "first_name": "Richard", + "last_name": "Prince", + "email": "michelle58@example.org", + "gender": "Female", + "favorite_genres": "Hip Hop", + "created_at": "2024-01-19T13:40:07.888469", + "updated_at": "2025-07-11T11:31:27.197042" + }, + { + "id": 42413, + "first_name": "Jennifer", + "last_name": "Davis", + "email": "amymann@example.net", + "gender": "Agender", + "favorite_genres": "Blues", + "created_at": "2023-11-03T07:34:56.235861", + "updated_at": "2024-11-12T08:58:00.383234" + }, + { + "id": 43833, + "first_name": "James", + "last_name": "Murray", + "email": "kimberlysmith@example.com", + "gender": "Gender nonconforming", + "favorite_genres": "Alternative", + "created_at": "2025-08-03T15:09:02.033505", + "updated_at": "2025-01-03T20:37:54.600928" + }, + { + "id": 30415, + "first_name": "Anthony", + "last_name": "Miller", + "email": "colonnicholas@example.org", + "gender": "Genderfluid", + "favorite_genres": "Blues", + "created_at": "2023-11-23T06:27:15.964396", + "updated_at": "2024-08-13T15:03:29.122041" + }, + { + "id": 33428, + "first_name": "Samantha", + "last_name": "Wilcox", + "email": "tara14@example.org", + "gender": "Gender nonconforming", + "favorite_genres": "Pop", + "created_at": "2025-07-02T09:49:41.968493", + "updated_at": "2024-08-31T11:50:13.421921" + }, + { + "id": 70349, + "first_name": "Tammy", + "last_name": "Jones", + "email": "carolynsmith@example.com", + "gender": "Agender", + "favorite_genres": "Folk", + "created_at": "2023-12-07T11:11:08.708426", + "updated_at": "2025-07-24T12:13:45.184778" + }, + { + "id": 87963, + "first_name": "Richard", + "last_name": "Taylor", + "email": "maryjones@example.com", + "gender": "Gender nonconforming", + "favorite_genres": "Indie", + "created_at": "2023-11-18T05:55:33.723847", + "updated_at": "2025-01-13T16:21:37.717741" + }, + { + "id": 80506, + "first_name": "Melanie", + "last_name": "Stafford", + "email": "kramsey@example.net", + "gender": "Male", + "favorite_genres": "Techno", + "created_at": "2023-09-02T19:24:37.666986", + "updated_at": "2024-12-15T17:45:20.837488" + }, + { + "id": 27463, + "first_name": "Michael", + "last_name": "Jones", + "email": "cunninghambrandy@example.org", + "gender": "Bigender", + "favorite_genres": "Pop", + "created_at": "2024-04-19T02:05:33.136387", + "updated_at": "2025-03-26T10:03:18.772813" + }, + { + "id": 51822, + "first_name": "Dawn", + "last_name": "Mills", + "email": "hunterdavid@example.net", + "gender": "Female", + "favorite_genres": "Hip Hop", + "created_at": "2025-04-25T19:03:28.727446", + "updated_at": "2024-11-02T20:20:50.132991" + }, + { + "id": 42510, + "first_name": "Aaron", + "last_name": "Palmer", + "email": "milleralyssa@example.org", + "gender": "Genderqueer", + "favorite_genres": "Hip Hop", + "created_at": "2023-08-30T07:55:25.307247", + "updated_at": "2025-06-01T15:12:38.475365" + }, + { + "id": 86429, + "first_name": "Jason", + "last_name": "Zuniga", + "email": "catherinestokes@example.com", + "gender": "Agender", + "favorite_genres": "Techno", + "created_at": "2024-05-20T18:55:38.765194", + "updated_at": "2025-04-04T00:51:08.122123" + }, + { + "id": 97333, + "first_name": "Nathaniel", + "last_name": "Padilla", + "email": "armstrongtroy@example.org", + "gender": "Gender questioning", + "favorite_genres": "Metal", + "created_at": "2023-10-07T06:39:04.457892", + "updated_at": "2024-10-27T05:18:08.878666" + }, + { + "id": 64720, + "first_name": "Taylor", + "last_name": "Valdez", + "email": "aroth@example.org", + "gender": "Gender nonconforming", + "favorite_genres": "Punk", + "created_at": "2024-05-06T01:47:32.944905", + "updated_at": "2025-02-12T08:12:54.777785" + }, + { + "id": 82937, + "first_name": "Christina", + "last_name": "Cantu", + "email": "kevinwagner@example.net", + "gender": "Female", + "favorite_genres": "Hip Hop", + "created_at": "2024-03-31T03:33:42.460460", + "updated_at": "2024-09-03T10:19:50.763279" + }, + { + "id": 88473, + "first_name": "Lauren", + "last_name": "Berry", + "email": "michael04@example.org", + "gender": "Non-binary", + "favorite_genres": "R&B", + "created_at": "2024-11-10T17:41:06.378609", + "updated_at": "2024-12-31T19:26:49.046665" + }, + { + "id": 24148, + "first_name": "Rachael", + "last_name": "Castaneda", + "email": "jonathanwilliams@example.org", + "gender": "Bigender", + "favorite_genres": "Rock", + "created_at": "2024-08-08T17:13:44.510541", + "updated_at": "2024-11-12T01:17:30.287874" + }, + { + "id": 39562, + "first_name": "Richard", + "last_name": "Evans", + "email": "smiller@example.net", + "gender": "Genderfluid", + "favorite_genres": "Classical", + "created_at": "2024-10-11T03:32:40.972037", + "updated_at": "2025-05-12T22:03:19.604057" + }, + { + "id": 25631, + "first_name": "Christine", + "last_name": "Carpenter", + "email": "wallacejessica@example.org", + "gender": "Bigender", + "favorite_genres": "R&B", + "created_at": "2024-03-18T12:47:37.920836", + "updated_at": "2025-03-03T14:59:41.208753" + }, + { + "id": 64587, + "first_name": "Matthew", + "last_name": "Dean", + "email": "wkelley@example.com", + "gender": "Gender nonconforming", + "favorite_genres": "Punk", + "created_at": "2025-02-11T15:05:39.021650", + "updated_at": "2024-12-10T19:40:11.312320" + }, + { + "id": 99298, + "first_name": "Eduardo", + "last_name": "Flores", + "email": "mbryant@example.net", + "gender": "Genderqueer", + "favorite_genres": "Folk", + "created_at": "2025-07-17T13:51:01.335104", + "updated_at": "2024-12-07T12:34:58.673627" + }, + { + "id": 88965, + "first_name": "Stephanie", + "last_name": "Garcia", + "email": "wrightsarah@example.org", + "gender": "Bigender", + "favorite_genres": "Country", + "created_at": "2024-08-21T19:51:56.900426", + "updated_at": "2024-10-21T17:40:07.758567" + }, + { + "id": 60115, + "first_name": "Dana", + "last_name": "Wilkins", + "email": "heathersmith@example.org", + "gender": "Genderfluid", + "favorite_genres": "Reggae", + "created_at": "2024-01-01T22:37:56.536098", + "updated_at": "2024-11-17T19:01:26.824440" + }, + { + "id": 27501, + "first_name": "Charles", + "last_name": "Morris", + "email": "shari51@example.org", + "gender": "Genderfluid", + "favorite_genres": "Jazz", + "created_at": "2024-09-19T04:58:24.663717", + "updated_at": "2024-12-04T03:07:03.430504" + }, + { + "id": 20850, + "first_name": "Cynthia", + "last_name": "Hernandez", + "email": "tylerhernandez@example.net", + "gender": "Genderfluid", + "favorite_genres": "Classical", + "created_at": "2024-05-23T15:54:10.274418", + "updated_at": "2024-12-06T08:18:49.352325" + }, + { + "id": 60114, + "first_name": "Ryan", + "last_name": "Lamb", + "email": "wmacias@example.org", + "gender": "Gender nonconforming", + "favorite_genres": "Country", + "created_at": "2023-12-24T03:31:09.308753", + "updated_at": "2025-04-26T10:54:13.181606" + }, + { + "id": 12191, + "first_name": "Gina", + "last_name": "Chavez", + "email": "ycarpenter@example.net", + "gender": "Bigender", + "favorite_genres": "Classical", + "created_at": "2023-09-05T01:33:48.836539", + "updated_at": "2025-07-05T03:19:09.898481" + }, + { + "id": 74628, + "first_name": "Robert", + "last_name": "Hanson", + "email": "sawyermadison@example.net", + "gender": "Agender", + "favorite_genres": "Classical", + "created_at": "2023-11-15T16:26:10.782757", + "updated_at": "2024-10-04T18:54:53.594339" + }, + { + "id": 38062, + "first_name": "Nicholas", + "last_name": "Mccormick", + "email": "scottrodriguez@example.com", + "gender": "Male", + "favorite_genres": "Pop", + "created_at": "2025-03-03T07:13:32.003599", + "updated_at": "2025-05-14T23:14:06.887984" + }, + { + "id": 64807, + "first_name": "Melissa", + "last_name": "Shaffer", + "email": "powellvalerie@example.com", + "gender": "Non-binary", + "favorite_genres": "Pop", + "created_at": "2024-01-20T15:00:06.433043", + "updated_at": "2025-03-05T12:01:01.204920" + }, + { + "id": 48369, + "first_name": "Jonathan", + "last_name": "Wright", + "email": "igriffith@example.net", + "gender": "Non-binary", + "favorite_genres": "Folk", + "created_at": "2025-02-15T14:44:47.992045", + "updated_at": "2024-09-10T07:34:43.263213" + }, + { + "id": 54562, + "first_name": "Alyssa", + "last_name": "Cantrell", + "email": "rebekahcarter@example.com", + "gender": "Genderfluid", + "favorite_genres": "Electronic", + "created_at": "2025-05-26T23:47:14.693154", + "updated_at": "2025-01-05T17:46:26.945874" + }, + { + "id": 46047, + "first_name": "Michael", + "last_name": "Myers", + "email": "jerrypace@example.net", + "gender": "Genderqueer", + "favorite_genres": "Blues", + "created_at": "2024-03-08T08:58:26.596098", + "updated_at": "2024-09-07T09:12:17.395031" + }, + { + "id": 31641, + "first_name": "Rebekah", + "last_name": "Francis", + "email": "bbrown@example.org", + "gender": "Non-binary", + "favorite_genres": "Blues", + "created_at": "2024-08-10T04:32:24.267301", + "updated_at": "2024-08-10T23:11:45.387825" + }, + { + "id": 92174, + "first_name": "Deanna", + "last_name": "Smith", + "email": "williampowell@example.com", + "gender": "Agender", + "favorite_genres": "Funk", + "created_at": "2024-12-28T00:15:20.844850", + "updated_at": "2025-01-23T15:05:07.725683" + }, + { + "id": 30353, + "first_name": "Rebecca", + "last_name": "Oliver", + "email": "griffithfelicia@example.org", + "gender": "Gender nonconforming", + "favorite_genres": "Rock", + "created_at": "2025-02-27T16:52:06.088984", + "updated_at": "2025-07-18T05:39:04.516157" + }, + { + "id": 62648, + "first_name": "Rachel", + "last_name": "Nguyen", + "email": "derek78@example.net", + "gender": "Genderfluid", + "favorite_genres": "Classical", + "created_at": "2024-03-15T07:56:25.734571", + "updated_at": "2025-01-15T12:59:20.701306" + }, + { + "id": 54821, + "first_name": "Erin", + "last_name": "Warren", + "email": "morganhernandez@example.net", + "gender": "Genderfluid", + "favorite_genres": "R&B", + "created_at": "2023-09-12T00:33:20.483502", + "updated_at": "2025-06-16T09:48:11.669899" + }, + { + "id": 82332, + "first_name": "Samuel", + "last_name": "Lopez", + "email": "cmorgan@example.com", + "gender": "Bigender", + "favorite_genres": "Pop", + "created_at": "2025-03-05T11:45:09.038911", + "updated_at": "2025-02-17T00:55:42.292540" + }, + { + "id": 14395, + "first_name": "Amanda", + "last_name": "Ryan", + "email": "klinekelly@example.org", + "gender": "Genderqueer", + "favorite_genres": "R&B", + "created_at": "2024-07-12T22:07:03.881199", + "updated_at": "2024-12-25T10:38:52.192710" + }, + { + "id": 92112, + "first_name": "Mackenzie", + "last_name": "Harris", + "email": "lstafford@example.com", + "gender": "Genderfluid", + "favorite_genres": "R&B", + "created_at": "2024-01-08T21:27:40.763988", + "updated_at": "2024-09-11T05:52:15.302868" + }, + { + "id": 16290, + "first_name": "Catherine", + "last_name": "Gilbert", + "email": "brian11@example.org", + "gender": "Gender questioning", + "favorite_genres": "Pop", + "created_at": "2025-07-19T13:58:16.349071", + "updated_at": "2024-12-13T16:25:31.467943" + }, + { + "id": 20844, + "first_name": "Brenda", + "last_name": "Cruz", + "email": "hsmith@example.com", + "gender": "Non-binary", + "favorite_genres": "R&B", + "created_at": "2025-06-08T22:56:30.081422", + "updated_at": "2024-12-20T22:11:08.423246" + }, + { + "id": 30716, + "first_name": "Melanie", + "last_name": "Shelton", + "email": "anthonyrodriguez@example.net", + "gender": "Bigender", + "favorite_genres": "Techno", + "created_at": "2025-05-30T11:04:29.090327", + "updated_at": "2025-07-29T19:45:31.026040" + }, + { + "id": 20466, + "first_name": "John", + "last_name": "Evans", + "email": "hhayden@example.net", + "gender": "Gender nonconforming", + "favorite_genres": "Funk", + "created_at": "2024-07-13T14:25:18.170303", + "updated_at": "2024-11-29T11:58:17.408999" + }, + { + "id": 12157, + "first_name": "Amber", + "last_name": "Patterson", + "email": "christine12@example.com", + "gender": "Non-binary", + "favorite_genres": "Pop", + "created_at": "2023-09-11T08:24:42.225066", + "updated_at": "2024-08-21T15:04:15.355542" + }, + { + "id": 94630, + "first_name": "Tyrone", + "last_name": "Chung", + "email": "sarah55@example.net", + "gender": "Bigender", + "favorite_genres": "Folk", + "created_at": "2023-08-13T09:23:34.875917", + "updated_at": "2025-05-17T20:29:20.945470" + } + ], + "total": 1000, + "page": 1, + "size": 50, + "pages": 20 +} \ No newline at end of file diff --git a/src/data_pipelines/data_output/users_20250806_231914.json b/src/data_pipelines/data_output/users_20250806_231914.json new file mode 100644 index 0000000..4793cab --- /dev/null +++ b/src/data_pipelines/data_output/users_20250806_231914.json @@ -0,0 +1,508 @@ +{ + "items": [ + { + "id": 86165, + "first_name": "Rebecca", + "last_name": "Mendoza", + "email": "jkerr@example.com", + "gender": "Non-binary", + "favorite_genres": "Folk", + "created_at": "2023-10-19T20:35:49.957770", + "updated_at": "2025-01-08T13:21:56.640122" + }, + { + "id": 33653, + "first_name": "John", + "last_name": "Smith", + "email": "sarahcarpenter@example.com", + "gender": "Genderfluid", + "favorite_genres": "Classical", + "created_at": "2024-05-25T07:15:35.622802", + "updated_at": "2025-01-26T05:37:13.713386" + }, + { + "id": 12193, + "first_name": "Tina", + "last_name": "Henderson", + "email": "brian57@example.net", + "gender": "Gender nonconforming", + "favorite_genres": "Folk", + "created_at": "2024-04-27T04:56:27.293688", + "updated_at": "2025-01-06T03:09:21.388379" + }, + { + "id": 23281, + "first_name": "Richard", + "last_name": "Prince", + "email": "michelle58@example.org", + "gender": "Female", + "favorite_genres": "Hip Hop", + "created_at": "2024-01-19T13:40:07.888469", + "updated_at": "2025-07-11T11:31:27.197042" + }, + { + "id": 42413, + "first_name": "Jennifer", + "last_name": "Davis", + "email": "amymann@example.net", + "gender": "Agender", + "favorite_genres": "Blues", + "created_at": "2023-11-03T07:34:56.235861", + "updated_at": "2024-11-12T08:58:00.383234" + }, + { + "id": 43833, + "first_name": "James", + "last_name": "Murray", + "email": "kimberlysmith@example.com", + "gender": "Gender nonconforming", + "favorite_genres": "Alternative", + "created_at": "2025-08-03T15:09:02.033505", + "updated_at": "2025-01-03T20:37:54.600928" + }, + { + "id": 30415, + "first_name": "Anthony", + "last_name": "Miller", + "email": "colonnicholas@example.org", + "gender": "Genderfluid", + "favorite_genres": "Blues", + "created_at": "2023-11-23T06:27:15.964396", + "updated_at": "2024-08-13T15:03:29.122041" + }, + { + "id": 33428, + "first_name": "Samantha", + "last_name": "Wilcox", + "email": "tara14@example.org", + "gender": "Gender nonconforming", + "favorite_genres": "Pop", + "created_at": "2025-07-02T09:49:41.968493", + "updated_at": "2024-08-31T11:50:13.421921" + }, + { + "id": 70349, + "first_name": "Tammy", + "last_name": "Jones", + "email": "carolynsmith@example.com", + "gender": "Agender", + "favorite_genres": "Folk", + "created_at": "2023-12-07T11:11:08.708426", + "updated_at": "2025-07-24T12:13:45.184778" + }, + { + "id": 87963, + "first_name": "Richard", + "last_name": "Taylor", + "email": "maryjones@example.com", + "gender": "Gender nonconforming", + "favorite_genres": "Indie", + "created_at": "2023-11-18T05:55:33.723847", + "updated_at": "2025-01-13T16:21:37.717741" + }, + { + "id": 80506, + "first_name": "Melanie", + "last_name": "Stafford", + "email": "kramsey@example.net", + "gender": "Male", + "favorite_genres": "Techno", + "created_at": "2023-09-02T19:24:37.666986", + "updated_at": "2024-12-15T17:45:20.837488" + }, + { + "id": 27463, + "first_name": "Michael", + "last_name": "Jones", + "email": "cunninghambrandy@example.org", + "gender": "Bigender", + "favorite_genres": "Pop", + "created_at": "2024-04-19T02:05:33.136387", + "updated_at": "2025-03-26T10:03:18.772813" + }, + { + "id": 51822, + "first_name": "Dawn", + "last_name": "Mills", + "email": "hunterdavid@example.net", + "gender": "Female", + "favorite_genres": "Hip Hop", + "created_at": "2025-04-25T19:03:28.727446", + "updated_at": "2024-11-02T20:20:50.132991" + }, + { + "id": 42510, + "first_name": "Aaron", + "last_name": "Palmer", + "email": "milleralyssa@example.org", + "gender": "Genderqueer", + "favorite_genres": "Hip Hop", + "created_at": "2023-08-30T07:55:25.307247", + "updated_at": "2025-06-01T15:12:38.475365" + }, + { + "id": 86429, + "first_name": "Jason", + "last_name": "Zuniga", + "email": "catherinestokes@example.com", + "gender": "Agender", + "favorite_genres": "Techno", + "created_at": "2024-05-20T18:55:38.765194", + "updated_at": "2025-04-04T00:51:08.122123" + }, + { + "id": 97333, + "first_name": "Nathaniel", + "last_name": "Padilla", + "email": "armstrongtroy@example.org", + "gender": "Gender questioning", + "favorite_genres": "Metal", + "created_at": "2023-10-07T06:39:04.457892", + "updated_at": "2024-10-27T05:18:08.878666" + }, + { + "id": 64720, + "first_name": "Taylor", + "last_name": "Valdez", + "email": "aroth@example.org", + "gender": "Gender nonconforming", + "favorite_genres": "Punk", + "created_at": "2024-05-06T01:47:32.944905", + "updated_at": "2025-02-12T08:12:54.777785" + }, + { + "id": 82937, + "first_name": "Christina", + "last_name": "Cantu", + "email": "kevinwagner@example.net", + "gender": "Female", + "favorite_genres": "Hip Hop", + "created_at": "2024-03-31T03:33:42.460460", + "updated_at": "2024-09-03T10:19:50.763279" + }, + { + "id": 88473, + "first_name": "Lauren", + "last_name": "Berry", + "email": "michael04@example.org", + "gender": "Non-binary", + "favorite_genres": "R&B", + "created_at": "2024-11-10T17:41:06.378609", + "updated_at": "2024-12-31T19:26:49.046665" + }, + { + "id": 24148, + "first_name": "Rachael", + "last_name": "Castaneda", + "email": "jonathanwilliams@example.org", + "gender": "Bigender", + "favorite_genres": "Rock", + "created_at": "2024-08-08T17:13:44.510541", + "updated_at": "2024-11-12T01:17:30.287874" + }, + { + "id": 39562, + "first_name": "Richard", + "last_name": "Evans", + "email": "smiller@example.net", + "gender": "Genderfluid", + "favorite_genres": "Classical", + "created_at": "2024-10-11T03:32:40.972037", + "updated_at": "2025-05-12T22:03:19.604057" + }, + { + "id": 25631, + "first_name": "Christine", + "last_name": "Carpenter", + "email": "wallacejessica@example.org", + "gender": "Bigender", + "favorite_genres": "R&B", + "created_at": "2024-03-18T12:47:37.920836", + "updated_at": "2025-03-03T14:59:41.208753" + }, + { + "id": 64587, + "first_name": "Matthew", + "last_name": "Dean", + "email": "wkelley@example.com", + "gender": "Gender nonconforming", + "favorite_genres": "Punk", + "created_at": "2025-02-11T15:05:39.021650", + "updated_at": "2024-12-10T19:40:11.312320" + }, + { + "id": 99298, + "first_name": "Eduardo", + "last_name": "Flores", + "email": "mbryant@example.net", + "gender": "Genderqueer", + "favorite_genres": "Folk", + "created_at": "2025-07-17T13:51:01.335104", + "updated_at": "2024-12-07T12:34:58.673627" + }, + { + "id": 88965, + "first_name": "Stephanie", + "last_name": "Garcia", + "email": "wrightsarah@example.org", + "gender": "Bigender", + "favorite_genres": "Country", + "created_at": "2024-08-21T19:51:56.900426", + "updated_at": "2024-10-21T17:40:07.758567" + }, + { + "id": 60115, + "first_name": "Dana", + "last_name": "Wilkins", + "email": "heathersmith@example.org", + "gender": "Genderfluid", + "favorite_genres": "Reggae", + "created_at": "2024-01-01T22:37:56.536098", + "updated_at": "2024-11-17T19:01:26.824440" + }, + { + "id": 27501, + "first_name": "Charles", + "last_name": "Morris", + "email": "shari51@example.org", + "gender": "Genderfluid", + "favorite_genres": "Jazz", + "created_at": "2024-09-19T04:58:24.663717", + "updated_at": "2024-12-04T03:07:03.430504" + }, + { + "id": 20850, + "first_name": "Cynthia", + "last_name": "Hernandez", + "email": "tylerhernandez@example.net", + "gender": "Genderfluid", + "favorite_genres": "Classical", + "created_at": "2024-05-23T15:54:10.274418", + "updated_at": "2024-12-06T08:18:49.352325" + }, + { + "id": 60114, + "first_name": "Ryan", + "last_name": "Lamb", + "email": "wmacias@example.org", + "gender": "Gender nonconforming", + "favorite_genres": "Country", + "created_at": "2023-12-24T03:31:09.308753", + "updated_at": "2025-04-26T10:54:13.181606" + }, + { + "id": 12191, + "first_name": "Gina", + "last_name": "Chavez", + "email": "ycarpenter@example.net", + "gender": "Bigender", + "favorite_genres": "Classical", + "created_at": "2023-09-05T01:33:48.836539", + "updated_at": "2025-07-05T03:19:09.898481" + }, + { + "id": 74628, + "first_name": "Robert", + "last_name": "Hanson", + "email": "sawyermadison@example.net", + "gender": "Agender", + "favorite_genres": "Classical", + "created_at": "2023-11-15T16:26:10.782757", + "updated_at": "2024-10-04T18:54:53.594339" + }, + { + "id": 38062, + "first_name": "Nicholas", + "last_name": "Mccormick", + "email": "scottrodriguez@example.com", + "gender": "Male", + "favorite_genres": "Pop", + "created_at": "2025-03-03T07:13:32.003599", + "updated_at": "2025-05-14T23:14:06.887984" + }, + { + "id": 64807, + "first_name": "Melissa", + "last_name": "Shaffer", + "email": "powellvalerie@example.com", + "gender": "Non-binary", + "favorite_genres": "Pop", + "created_at": "2024-01-20T15:00:06.433043", + "updated_at": "2025-03-05T12:01:01.204920" + }, + { + "id": 48369, + "first_name": "Jonathan", + "last_name": "Wright", + "email": "igriffith@example.net", + "gender": "Non-binary", + "favorite_genres": "Folk", + "created_at": "2025-02-15T14:44:47.992045", + "updated_at": "2024-09-10T07:34:43.263213" + }, + { + "id": 54562, + "first_name": "Alyssa", + "last_name": "Cantrell", + "email": "rebekahcarter@example.com", + "gender": "Genderfluid", + "favorite_genres": "Electronic", + "created_at": "2025-05-26T23:47:14.693154", + "updated_at": "2025-01-05T17:46:26.945874" + }, + { + "id": 46047, + "first_name": "Michael", + "last_name": "Myers", + "email": "jerrypace@example.net", + "gender": "Genderqueer", + "favorite_genres": "Blues", + "created_at": "2024-03-08T08:58:26.596098", + "updated_at": "2024-09-07T09:12:17.395031" + }, + { + "id": 31641, + "first_name": "Rebekah", + "last_name": "Francis", + "email": "bbrown@example.org", + "gender": "Non-binary", + "favorite_genres": "Blues", + "created_at": "2024-08-10T04:32:24.267301", + "updated_at": "2024-08-10T23:11:45.387825" + }, + { + "id": 92174, + "first_name": "Deanna", + "last_name": "Smith", + "email": "williampowell@example.com", + "gender": "Agender", + "favorite_genres": "Funk", + "created_at": "2024-12-28T00:15:20.844850", + "updated_at": "2025-01-23T15:05:07.725683" + }, + { + "id": 30353, + "first_name": "Rebecca", + "last_name": "Oliver", + "email": "griffithfelicia@example.org", + "gender": "Gender nonconforming", + "favorite_genres": "Rock", + "created_at": "2025-02-27T16:52:06.088984", + "updated_at": "2025-07-18T05:39:04.516157" + }, + { + "id": 62648, + "first_name": "Rachel", + "last_name": "Nguyen", + "email": "derek78@example.net", + "gender": "Genderfluid", + "favorite_genres": "Classical", + "created_at": "2024-03-15T07:56:25.734571", + "updated_at": "2025-01-15T12:59:20.701306" + }, + { + "id": 54821, + "first_name": "Erin", + "last_name": "Warren", + "email": "morganhernandez@example.net", + "gender": "Genderfluid", + "favorite_genres": "R&B", + "created_at": "2023-09-12T00:33:20.483502", + "updated_at": "2025-06-16T09:48:11.669899" + }, + { + "id": 82332, + "first_name": "Samuel", + "last_name": "Lopez", + "email": "cmorgan@example.com", + "gender": "Bigender", + "favorite_genres": "Pop", + "created_at": "2025-03-05T11:45:09.038911", + "updated_at": "2025-02-17T00:55:42.292540" + }, + { + "id": 14395, + "first_name": "Amanda", + "last_name": "Ryan", + "email": "klinekelly@example.org", + "gender": "Genderqueer", + "favorite_genres": "R&B", + "created_at": "2024-07-12T22:07:03.881199", + "updated_at": "2024-12-25T10:38:52.192710" + }, + { + "id": 92112, + "first_name": "Mackenzie", + "last_name": "Harris", + "email": "lstafford@example.com", + "gender": "Genderfluid", + "favorite_genres": "R&B", + "created_at": "2024-01-08T21:27:40.763988", + "updated_at": "2024-09-11T05:52:15.302868" + }, + { + "id": 16290, + "first_name": "Catherine", + "last_name": "Gilbert", + "email": "brian11@example.org", + "gender": "Gender questioning", + "favorite_genres": "Pop", + "created_at": "2025-07-19T13:58:16.349071", + "updated_at": "2024-12-13T16:25:31.467943" + }, + { + "id": 20844, + "first_name": "Brenda", + "last_name": "Cruz", + "email": "hsmith@example.com", + "gender": "Non-binary", + "favorite_genres": "R&B", + "created_at": "2025-06-08T22:56:30.081422", + "updated_at": "2024-12-20T22:11:08.423246" + }, + { + "id": 30716, + "first_name": "Melanie", + "last_name": "Shelton", + "email": "anthonyrodriguez@example.net", + "gender": "Bigender", + "favorite_genres": "Techno", + "created_at": "2025-05-30T11:04:29.090327", + "updated_at": "2025-07-29T19:45:31.026040" + }, + { + "id": 20466, + "first_name": "John", + "last_name": "Evans", + "email": "hhayden@example.net", + "gender": "Gender nonconforming", + "favorite_genres": "Funk", + "created_at": "2024-07-13T14:25:18.170303", + "updated_at": "2024-11-29T11:58:17.408999" + }, + { + "id": 12157, + "first_name": "Amber", + "last_name": "Patterson", + "email": "christine12@example.com", + "gender": "Non-binary", + "favorite_genres": "Pop", + "created_at": "2023-09-11T08:24:42.225066", + "updated_at": "2024-08-21T15:04:15.355542" + }, + { + "id": 94630, + "first_name": "Tyrone", + "last_name": "Chung", + "email": "sarah55@example.net", + "gender": "Bigender", + "favorite_genres": "Folk", + "created_at": "2023-08-13T09:23:34.875917", + "updated_at": "2025-05-17T20:29:20.945470" + } + ], + "total": 1000, + "page": 1, + "size": 50, + "pages": 20 +} \ No newline at end of file diff --git a/src/data_pipelines/data_output/users_20250806_233438.json b/src/data_pipelines/data_output/users_20250806_233438.json new file mode 100644 index 0000000..4793cab --- /dev/null +++ b/src/data_pipelines/data_output/users_20250806_233438.json @@ -0,0 +1,508 @@ +{ + "items": [ + { + "id": 86165, + "first_name": "Rebecca", + "last_name": "Mendoza", + "email": "jkerr@example.com", + "gender": "Non-binary", + "favorite_genres": "Folk", + "created_at": "2023-10-19T20:35:49.957770", + "updated_at": "2025-01-08T13:21:56.640122" + }, + { + "id": 33653, + "first_name": "John", + "last_name": "Smith", + "email": "sarahcarpenter@example.com", + "gender": "Genderfluid", + "favorite_genres": "Classical", + "created_at": "2024-05-25T07:15:35.622802", + "updated_at": "2025-01-26T05:37:13.713386" + }, + { + "id": 12193, + "first_name": "Tina", + "last_name": "Henderson", + "email": "brian57@example.net", + "gender": "Gender nonconforming", + "favorite_genres": "Folk", + "created_at": "2024-04-27T04:56:27.293688", + "updated_at": "2025-01-06T03:09:21.388379" + }, + { + "id": 23281, + "first_name": "Richard", + "last_name": "Prince", + "email": "michelle58@example.org", + "gender": "Female", + "favorite_genres": "Hip Hop", + "created_at": "2024-01-19T13:40:07.888469", + "updated_at": "2025-07-11T11:31:27.197042" + }, + { + "id": 42413, + "first_name": "Jennifer", + "last_name": "Davis", + "email": "amymann@example.net", + "gender": "Agender", + "favorite_genres": "Blues", + "created_at": "2023-11-03T07:34:56.235861", + "updated_at": "2024-11-12T08:58:00.383234" + }, + { + "id": 43833, + "first_name": "James", + "last_name": "Murray", + "email": "kimberlysmith@example.com", + "gender": "Gender nonconforming", + "favorite_genres": "Alternative", + "created_at": "2025-08-03T15:09:02.033505", + "updated_at": "2025-01-03T20:37:54.600928" + }, + { + "id": 30415, + "first_name": "Anthony", + "last_name": "Miller", + "email": "colonnicholas@example.org", + "gender": "Genderfluid", + "favorite_genres": "Blues", + "created_at": "2023-11-23T06:27:15.964396", + "updated_at": "2024-08-13T15:03:29.122041" + }, + { + "id": 33428, + "first_name": "Samantha", + "last_name": "Wilcox", + "email": "tara14@example.org", + "gender": "Gender nonconforming", + "favorite_genres": "Pop", + "created_at": "2025-07-02T09:49:41.968493", + "updated_at": "2024-08-31T11:50:13.421921" + }, + { + "id": 70349, + "first_name": "Tammy", + "last_name": "Jones", + "email": "carolynsmith@example.com", + "gender": "Agender", + "favorite_genres": "Folk", + "created_at": "2023-12-07T11:11:08.708426", + "updated_at": "2025-07-24T12:13:45.184778" + }, + { + "id": 87963, + "first_name": "Richard", + "last_name": "Taylor", + "email": "maryjones@example.com", + "gender": "Gender nonconforming", + "favorite_genres": "Indie", + "created_at": "2023-11-18T05:55:33.723847", + "updated_at": "2025-01-13T16:21:37.717741" + }, + { + "id": 80506, + "first_name": "Melanie", + "last_name": "Stafford", + "email": "kramsey@example.net", + "gender": "Male", + "favorite_genres": "Techno", + "created_at": "2023-09-02T19:24:37.666986", + "updated_at": "2024-12-15T17:45:20.837488" + }, + { + "id": 27463, + "first_name": "Michael", + "last_name": "Jones", + "email": "cunninghambrandy@example.org", + "gender": "Bigender", + "favorite_genres": "Pop", + "created_at": "2024-04-19T02:05:33.136387", + "updated_at": "2025-03-26T10:03:18.772813" + }, + { + "id": 51822, + "first_name": "Dawn", + "last_name": "Mills", + "email": "hunterdavid@example.net", + "gender": "Female", + "favorite_genres": "Hip Hop", + "created_at": "2025-04-25T19:03:28.727446", + "updated_at": "2024-11-02T20:20:50.132991" + }, + { + "id": 42510, + "first_name": "Aaron", + "last_name": "Palmer", + "email": "milleralyssa@example.org", + "gender": "Genderqueer", + "favorite_genres": "Hip Hop", + "created_at": "2023-08-30T07:55:25.307247", + "updated_at": "2025-06-01T15:12:38.475365" + }, + { + "id": 86429, + "first_name": "Jason", + "last_name": "Zuniga", + "email": "catherinestokes@example.com", + "gender": "Agender", + "favorite_genres": "Techno", + "created_at": "2024-05-20T18:55:38.765194", + "updated_at": "2025-04-04T00:51:08.122123" + }, + { + "id": 97333, + "first_name": "Nathaniel", + "last_name": "Padilla", + "email": "armstrongtroy@example.org", + "gender": "Gender questioning", + "favorite_genres": "Metal", + "created_at": "2023-10-07T06:39:04.457892", + "updated_at": "2024-10-27T05:18:08.878666" + }, + { + "id": 64720, + "first_name": "Taylor", + "last_name": "Valdez", + "email": "aroth@example.org", + "gender": "Gender nonconforming", + "favorite_genres": "Punk", + "created_at": "2024-05-06T01:47:32.944905", + "updated_at": "2025-02-12T08:12:54.777785" + }, + { + "id": 82937, + "first_name": "Christina", + "last_name": "Cantu", + "email": "kevinwagner@example.net", + "gender": "Female", + "favorite_genres": "Hip Hop", + "created_at": "2024-03-31T03:33:42.460460", + "updated_at": "2024-09-03T10:19:50.763279" + }, + { + "id": 88473, + "first_name": "Lauren", + "last_name": "Berry", + "email": "michael04@example.org", + "gender": "Non-binary", + "favorite_genres": "R&B", + "created_at": "2024-11-10T17:41:06.378609", + "updated_at": "2024-12-31T19:26:49.046665" + }, + { + "id": 24148, + "first_name": "Rachael", + "last_name": "Castaneda", + "email": "jonathanwilliams@example.org", + "gender": "Bigender", + "favorite_genres": "Rock", + "created_at": "2024-08-08T17:13:44.510541", + "updated_at": "2024-11-12T01:17:30.287874" + }, + { + "id": 39562, + "first_name": "Richard", + "last_name": "Evans", + "email": "smiller@example.net", + "gender": "Genderfluid", + "favorite_genres": "Classical", + "created_at": "2024-10-11T03:32:40.972037", + "updated_at": "2025-05-12T22:03:19.604057" + }, + { + "id": 25631, + "first_name": "Christine", + "last_name": "Carpenter", + "email": "wallacejessica@example.org", + "gender": "Bigender", + "favorite_genres": "R&B", + "created_at": "2024-03-18T12:47:37.920836", + "updated_at": "2025-03-03T14:59:41.208753" + }, + { + "id": 64587, + "first_name": "Matthew", + "last_name": "Dean", + "email": "wkelley@example.com", + "gender": "Gender nonconforming", + "favorite_genres": "Punk", + "created_at": "2025-02-11T15:05:39.021650", + "updated_at": "2024-12-10T19:40:11.312320" + }, + { + "id": 99298, + "first_name": "Eduardo", + "last_name": "Flores", + "email": "mbryant@example.net", + "gender": "Genderqueer", + "favorite_genres": "Folk", + "created_at": "2025-07-17T13:51:01.335104", + "updated_at": "2024-12-07T12:34:58.673627" + }, + { + "id": 88965, + "first_name": "Stephanie", + "last_name": "Garcia", + "email": "wrightsarah@example.org", + "gender": "Bigender", + "favorite_genres": "Country", + "created_at": "2024-08-21T19:51:56.900426", + "updated_at": "2024-10-21T17:40:07.758567" + }, + { + "id": 60115, + "first_name": "Dana", + "last_name": "Wilkins", + "email": "heathersmith@example.org", + "gender": "Genderfluid", + "favorite_genres": "Reggae", + "created_at": "2024-01-01T22:37:56.536098", + "updated_at": "2024-11-17T19:01:26.824440" + }, + { + "id": 27501, + "first_name": "Charles", + "last_name": "Morris", + "email": "shari51@example.org", + "gender": "Genderfluid", + "favorite_genres": "Jazz", + "created_at": "2024-09-19T04:58:24.663717", + "updated_at": "2024-12-04T03:07:03.430504" + }, + { + "id": 20850, + "first_name": "Cynthia", + "last_name": "Hernandez", + "email": "tylerhernandez@example.net", + "gender": "Genderfluid", + "favorite_genres": "Classical", + "created_at": "2024-05-23T15:54:10.274418", + "updated_at": "2024-12-06T08:18:49.352325" + }, + { + "id": 60114, + "first_name": "Ryan", + "last_name": "Lamb", + "email": "wmacias@example.org", + "gender": "Gender nonconforming", + "favorite_genres": "Country", + "created_at": "2023-12-24T03:31:09.308753", + "updated_at": "2025-04-26T10:54:13.181606" + }, + { + "id": 12191, + "first_name": "Gina", + "last_name": "Chavez", + "email": "ycarpenter@example.net", + "gender": "Bigender", + "favorite_genres": "Classical", + "created_at": "2023-09-05T01:33:48.836539", + "updated_at": "2025-07-05T03:19:09.898481" + }, + { + "id": 74628, + "first_name": "Robert", + "last_name": "Hanson", + "email": "sawyermadison@example.net", + "gender": "Agender", + "favorite_genres": "Classical", + "created_at": "2023-11-15T16:26:10.782757", + "updated_at": "2024-10-04T18:54:53.594339" + }, + { + "id": 38062, + "first_name": "Nicholas", + "last_name": "Mccormick", + "email": "scottrodriguez@example.com", + "gender": "Male", + "favorite_genres": "Pop", + "created_at": "2025-03-03T07:13:32.003599", + "updated_at": "2025-05-14T23:14:06.887984" + }, + { + "id": 64807, + "first_name": "Melissa", + "last_name": "Shaffer", + "email": "powellvalerie@example.com", + "gender": "Non-binary", + "favorite_genres": "Pop", + "created_at": "2024-01-20T15:00:06.433043", + "updated_at": "2025-03-05T12:01:01.204920" + }, + { + "id": 48369, + "first_name": "Jonathan", + "last_name": "Wright", + "email": "igriffith@example.net", + "gender": "Non-binary", + "favorite_genres": "Folk", + "created_at": "2025-02-15T14:44:47.992045", + "updated_at": "2024-09-10T07:34:43.263213" + }, + { + "id": 54562, + "first_name": "Alyssa", + "last_name": "Cantrell", + "email": "rebekahcarter@example.com", + "gender": "Genderfluid", + "favorite_genres": "Electronic", + "created_at": "2025-05-26T23:47:14.693154", + "updated_at": "2025-01-05T17:46:26.945874" + }, + { + "id": 46047, + "first_name": "Michael", + "last_name": "Myers", + "email": "jerrypace@example.net", + "gender": "Genderqueer", + "favorite_genres": "Blues", + "created_at": "2024-03-08T08:58:26.596098", + "updated_at": "2024-09-07T09:12:17.395031" + }, + { + "id": 31641, + "first_name": "Rebekah", + "last_name": "Francis", + "email": "bbrown@example.org", + "gender": "Non-binary", + "favorite_genres": "Blues", + "created_at": "2024-08-10T04:32:24.267301", + "updated_at": "2024-08-10T23:11:45.387825" + }, + { + "id": 92174, + "first_name": "Deanna", + "last_name": "Smith", + "email": "williampowell@example.com", + "gender": "Agender", + "favorite_genres": "Funk", + "created_at": "2024-12-28T00:15:20.844850", + "updated_at": "2025-01-23T15:05:07.725683" + }, + { + "id": 30353, + "first_name": "Rebecca", + "last_name": "Oliver", + "email": "griffithfelicia@example.org", + "gender": "Gender nonconforming", + "favorite_genres": "Rock", + "created_at": "2025-02-27T16:52:06.088984", + "updated_at": "2025-07-18T05:39:04.516157" + }, + { + "id": 62648, + "first_name": "Rachel", + "last_name": "Nguyen", + "email": "derek78@example.net", + "gender": "Genderfluid", + "favorite_genres": "Classical", + "created_at": "2024-03-15T07:56:25.734571", + "updated_at": "2025-01-15T12:59:20.701306" + }, + { + "id": 54821, + "first_name": "Erin", + "last_name": "Warren", + "email": "morganhernandez@example.net", + "gender": "Genderfluid", + "favorite_genres": "R&B", + "created_at": "2023-09-12T00:33:20.483502", + "updated_at": "2025-06-16T09:48:11.669899" + }, + { + "id": 82332, + "first_name": "Samuel", + "last_name": "Lopez", + "email": "cmorgan@example.com", + "gender": "Bigender", + "favorite_genres": "Pop", + "created_at": "2025-03-05T11:45:09.038911", + "updated_at": "2025-02-17T00:55:42.292540" + }, + { + "id": 14395, + "first_name": "Amanda", + "last_name": "Ryan", + "email": "klinekelly@example.org", + "gender": "Genderqueer", + "favorite_genres": "R&B", + "created_at": "2024-07-12T22:07:03.881199", + "updated_at": "2024-12-25T10:38:52.192710" + }, + { + "id": 92112, + "first_name": "Mackenzie", + "last_name": "Harris", + "email": "lstafford@example.com", + "gender": "Genderfluid", + "favorite_genres": "R&B", + "created_at": "2024-01-08T21:27:40.763988", + "updated_at": "2024-09-11T05:52:15.302868" + }, + { + "id": 16290, + "first_name": "Catherine", + "last_name": "Gilbert", + "email": "brian11@example.org", + "gender": "Gender questioning", + "favorite_genres": "Pop", + "created_at": "2025-07-19T13:58:16.349071", + "updated_at": "2024-12-13T16:25:31.467943" + }, + { + "id": 20844, + "first_name": "Brenda", + "last_name": "Cruz", + "email": "hsmith@example.com", + "gender": "Non-binary", + "favorite_genres": "R&B", + "created_at": "2025-06-08T22:56:30.081422", + "updated_at": "2024-12-20T22:11:08.423246" + }, + { + "id": 30716, + "first_name": "Melanie", + "last_name": "Shelton", + "email": "anthonyrodriguez@example.net", + "gender": "Bigender", + "favorite_genres": "Techno", + "created_at": "2025-05-30T11:04:29.090327", + "updated_at": "2025-07-29T19:45:31.026040" + }, + { + "id": 20466, + "first_name": "John", + "last_name": "Evans", + "email": "hhayden@example.net", + "gender": "Gender nonconforming", + "favorite_genres": "Funk", + "created_at": "2024-07-13T14:25:18.170303", + "updated_at": "2024-11-29T11:58:17.408999" + }, + { + "id": 12157, + "first_name": "Amber", + "last_name": "Patterson", + "email": "christine12@example.com", + "gender": "Non-binary", + "favorite_genres": "Pop", + "created_at": "2023-09-11T08:24:42.225066", + "updated_at": "2024-08-21T15:04:15.355542" + }, + { + "id": 94630, + "first_name": "Tyrone", + "last_name": "Chung", + "email": "sarah55@example.net", + "gender": "Bigender", + "favorite_genres": "Folk", + "created_at": "2023-08-13T09:23:34.875917", + "updated_at": "2025-05-17T20:29:20.945470" + } + ], + "total": 1000, + "page": 1, + "size": 50, + "pages": 20 +} \ No newline at end of file diff --git a/src/data_pipelines/scheduler.py b/src/data_pipelines/scheduler.py new file mode 100644 index 0000000..3465ae0 --- /dev/null +++ b/src/data_pipelines/scheduler.py @@ -0,0 +1,32 @@ +import schedule +import time +from datetime import datetime +from daily_pipeline import fetch_and_store_data +import logging + +logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') + +def run_pipeline(): + logging.info("Starting scheduled data pipeline run") + try: + fetch_and_store_data() + logging.info("Pipeline run completed successfully") + except Exception as e: + logging.error(f"Error during pipeline execution: {str(e)}") + +def main(): + # Schedule the pipeline to run daily at 2 AM + schedule.every().day.at("02:00").do(run_pipeline) + + logging.info("Scheduler started. Waiting for scheduled runs...") + + # Initial run (optional) + run_pipeline() + + # Keep the scheduler running + while True: + schedule.run_pending() + time.sleep(60) # Check every minute + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/src/moovitamix_fastapi/main.py b/src/moovitamix_fastapi/main.py index bd1d01f..d34b2b5 100644 --- a/src/moovitamix_fastapi/main.py +++ b/src/moovitamix_fastapi/main.py @@ -3,11 +3,13 @@ from fastapi.openapi.docs import get_swagger_ui_html from fastapi.responses import RedirectResponse from fastapi_pagination import Page, add_pagination, paginate +from pydantic import Field + from generate_fake_data import FakeDataGenerator -Page = Page.with_custom_options( - size=Query(100, ge=1, le=100), -) +# Page = Page.with_custom_options( +# size=100, +# ) app = FastAPI( title="MooVitamix", diff --git a/test/test_classes_out.py b/test/test_classes_out.py index 513ab01..91156b8 100644 --- a/test/test_classes_out.py +++ b/test/test_classes_out.py @@ -1,5 +1,5 @@ import datetime -from src.moovitamix_fastapi.classes_out import TracksOut, UsersOut, ListenHistoryOut, gender_list, genre_list +from moovitamix_fastapi.classes_out import TracksOut, UsersOut, ListenHistoryOut, gender_list, genre_list # Testing TracksOut def test_tracks_out_generate_fake(): diff --git a/test/test_data_pipeline.py b/test/test_data_pipeline.py new file mode 100644 index 0000000..b3e3594 --- /dev/null +++ b/test/test_data_pipeline.py @@ -0,0 +1,26 @@ +import os +import json +import pytest +from data_pipelines import daily_pipeline + +@pytest.fixture +def setup_and_cleanup(): + # Run the pipeline + daily_pipeline.fetch_and_store_data() + yield + # Cleanup + for file in os.listdir(daily_pipeline.OUTPUT_DIR): + if file.endswith(".json"): + os.remove(os.path.join(daily_pipeline.OUTPUT_DIR, file)) + +def test_pipeline_creates_json_files(setup_and_cleanup): + files = os.listdir(daily_pipeline.OUTPUT_DIR) + assert len(files) == 3 + +def test_json_files_are_valid(setup_and_cleanup): + for file in os.listdir(daily_pipeline.OUTPUT_DIR): + if file.endswith(".json"): + with open(os.path.join(daily_pipeline.OUTPUT_DIR, file)) as f: + data = json.load(f) + assert "items" in data + assert isinstance(data["items"], list)