Anime
Represents an anime series, movie, OVA, or other media.Model Location
app/Models/Wiki/Anime.php
Key Attributes
anime_id- Unique identifierslug- URL-friendly name (e.g., “bakemonogatari”)name- Official titleyear- Release yearseason- Season enum:WINTER,SPRING,SUMMER,FALLmedia_format- Format enum:TV,MOVIE,OVA,ONA,SPECIALsynopsis- Description text
Relationships
Route Key
Anime uses theslug attribute as its route key:
Artist
Represents a performer, vocalist, or musical group.Model Location
app/Models/Wiki/Artist.php
Key Attributes
artist_id- Unique identifierslug- URL-friendly namename- Artist nameinformation- Biography or additional info
Relationships
Artist-Song Relationships
Song
Represents a musical composition used in anime themes.Model Location
app/Models/Wiki/Song.php
Key Attributes
song_id- Unique identifiertitle- Song title (optional, may be null)title_native- Native language title
Relationships
Songs can be reused across multiple anime. For example, the same song might be OP1 for one anime and OP2 for another.
Theme (AnimeTheme)
Represents an opening or ending theme for an anime.Model Location
app/Models/Wiki/Anime/AnimeTheme.php
Key Attributes
theme_id- Unique identifiertype- Theme type enum:OP(opening),ED(ending)sequence- Theme number (1, 2, 3, etc.)slug- Formatted identifier (“OP1”, “ED2”)anime_id- Parent anime (foreign key)song_id- Associated song (foreign key, nullable)
Relationships
Entry (AnimeThemeEntry)
Represents a specific version or variant of a theme.Model Location
app/Models/Wiki/Anime/Theme/AnimeThemeEntry.php
Key Attributes
entry_id- Unique identifierversion- Version number (1, 2, 3, etc.)episodes- Episode range (e.g., “1-12”, “13-24”)nsfw- Boolean, contains NSFW contentspoiler- Boolean, contains spoilersnotes- Additional informationtheme_id- Parent theme (foreign key)
Relationships
Video
Represents a video file containing theme footage.Model Location
app/Models/Wiki/Video.php
Key Attributes
video_id- Unique identifierbasename- Unique filename without extension (route key)filename- Full filenamepath- Storage pathsize- File size in bytesmimetype- MIME type (e.g., “video/webm”)resolution- Vertical resolution (480, 720, 1080)nc- Boolean, no credits versionsubbed- Boolean, has hardcoded subtitleslyrics- Boolean, has hardcoded lyricsuncen- Boolean, uncensoredoverlap- Enum:NONE,TRANS,OVERsource- Enum:BD,DVD,WEB, etc.audio_id- Foreign key to audio track (nullable)
Relationships
Computed Attributes
Route Key
Videos use thebasename attribute:
Audio
Represents an audio file extracted from video.Model Location
app/Models/Wiki/Audio.php
Key Attributes
audio_id- Unique identifierbasename- Unique filename without extension (route key)filename- Full filenamepath- Storage pathsize- File size in bytesmimetype- MIME type (e.g., “audio/ogg”)
Relationships
Videos can share the same audio track. Multiple video variants (different resolutions, sources) may reference a single high-quality audio extraction.
Image
Represents cover art and other images.Model Location
app/Models/Wiki/Image.php
Key Attributes
image_id- Unique identifierpath- Storage pathfacet- Image type enum:SMALL_COVER- Small cover imageLARGE_COVER- Large cover imageGRILL- Character grill imageDOCUMENT- Documentation image
Polymorphic Relationships
Images can be attached to multiple resource types:Series
Groups related anime together.Model Location
app/Models/Wiki/Series.php
Key Attributes
series_id- Unique identifierslug- URL-friendly namename- Series name
Relationships
Example
The “Monogatari” series would group:- Bakemonogatari
- Nisemonogatari
- Nekomonogatari
- Etc.
Studio
Represents an animation studio.Model Location
app/Models/Wiki/Studio.php
Key Attributes
studio_id- Unique identifierslug- URL-friendly namename- Studio name
Relationships
External Resource
Links to external databases and services.Supported Sites
- MyAnimeList (MAL)
- AniList
- AniDB
- Anime-Planet
- Kitsu
- Official websites
- Twitter/X
Polymorphic Usage
Resources can be attached to:- Anime
- Artists
- Songs
Soft Deletes
Route Keys
Different resources use different attributes for routing:| Resource | Route Key | Example |
|---|---|---|
| Anime | slug | /anime/bakemonogatari |
| Artist | slug | /artist/supercell |
| Video | basename | /video/Bakemonogatari-OP1.webm |
| Audio | basename | /audio/Bakemonogatari-OP1.ogg |
| Series | slug | /series/monogatari |
| Studio | slug | /studio/shaft |