The domain layer is the innermost ring of the architecture. It contains no framework imports and no knowledge of how data is fetched or displayed. Everything else depends on it.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/juuaaann456/DMI-Practica06/llms.txt
Use this file to discover all available pages before exploring further.
Structure
The Movie entity
Movie is the canonical representation of a film throughout the application. It is a plain Dart class with no serialization logic or external dependencies.
Field reference
| Field | Type | Description |
|---|---|---|
id | int | Unique TheMovieDB identifier |
title | String | Localized movie title |
originalTitle | String | Title in the original language |
overview | String | Plot summary |
posterPath | String | Full URL to the poster image |
backdropPath | String | Full URL to the backdrop image |
releaseDate | DateTime | Theatrical release date |
voteAverage | double | Average user rating (0–10) |
voteCount | int | Total number of ratings |
popularity | double | TheMovieDB popularity score |
genreIds | List<int> | Genre identifiers |
originalLanguage | String | ISO 639-1 language code |
adult | bool | Whether the film is adult-rated |
video | bool | Whether a video clip is available |
posterPath and backdropPath on the domain entity are already full URLs. The infrastructure mapper is responsible for constructing them — the domain entity never knows about the image CDN.Abstract datasource
MoviesDatasource is an abstract class that declares what operations any data source must support. The domain defines the contract; the infrastructure fulfills it.
page parameter that defaults to 1, enabling pagination without forcing callers to supply it.
Abstract repository
MoviesRepository mirrors the datasource contract. The extra abstraction layer allows the application to swap datasources or add caching inside a repository implementation without changing the presentation layer.