# AI Radio Station

Autonomous AI radio station built on Laravel 12, designed to run a 24/7 online broadcast with minimal human intervention.

## Core Features

- AI News Engine with RSS/API ingestion, duplicate removal, summarization, and category assignment
- AI Radio Host commentary, time announcements, weather updates, promos, and branding
- Text-to-speech voice generation with caching and retry support
- Music upload, metadata management, playlist automation, and anti-repeat logic
- Broadcast scheduler for continuous queue generation and gap filling
- Weather service with hourly spoken reports
- Advertisement engine for uploaded ads and AI-generated ad text
- Icecast/AzuraCast streaming integration
- Listener interaction via API/WhatsApp-style request handling
- Laravel Breeze-ready admin dashboard and statistics monitoring
- Dockerized deployment with Redis queue support

## Quick Start

1. Copy `.env.example` to `.env`
2. Fill in database, Redis, OpenAI, ElevenLabs, Icecast, AzuraCast, and weather credentials
3. Run `docker compose up --build -d`
4. Run `docker compose exec app composer install`
5. Run `docker compose exec app php artisan key:generate`
6. Run `docker compose exec app php artisan migrate --seed`
7. Run `docker compose exec app php artisan schedule:work`

## Important Commands

- `php artisan radio:fetch-news`
- `php artisan radio:fetch-weather`
- `php artisan radio:generate-audio`
- `php artisan radio:maintain-queue`

## Project Structure

- `app/Services` — core AI radio services and integrations
- `app/Console/Commands` — scheduled workflow commands
- `app/Models` — domain models for songs, news, weather, ads, voice profiles, and queue items
- `database/migrations` — schema for the radio station database
- `database/seeders` — initial admin user, settings, and voice profiles
- `routes/api.php` — streaming and listener request APIs
- `routes/web.php` — admin dashboard route
- `docker-compose.yml` / `Dockerfile` — containerized deployment setup
- `docs` — installation and API documentation

## Notes

- Laravel Breeze auth can be installed with `composer require laravel/breeze --dev` and `php artisan breeze:install` if needed.
- This scaffold is built to support the AI radio automation workflow while keeping the architecture modular and queue-driven.
