01Create `TimeStampedModel` as an abstract model with `created_at` (auto_now_add) and `updated_at` (auto_now)
02Create a custom `PublishedManager` that filters `status='published'`
03Create `Article(TimeStampedModel)` with title, slug (unique), body, status (draft/published/archived using TextChoices), and author FK
04Create `Video(TimeStampedModel)` with title, url (URLField), duration_seconds (PositiveIntegerField), and status (reuse same TextChoices)
05Add `objects` (default manager) and `published` (PublishedManager) to both models
06Add `__str__` on both models returning the title
07Add `class Meta: ordering = ['-created_at']` on the abstract model so children inherit it
08Add a `is_published` property on TimeStampedModel (returns True if status == 'published')