Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/main/java/com/wediscussmovies/project/model/Movie.java

    r2d57cad r2a5d6a3  
    11package com.wediscussmovies.project.model;
     2
     3import lombok.Data;
    24
    35import javax.persistence.*;
    46import java.sql.Date;
    5 import java.util.Collection;
    6 import java.util.Objects;
     7import java.util.Comparator;
     8import java.util.List;
     9@Data
     10@Entity
     11@Table (name="movies")
     12public class Movie {
     13    @Id
     14    @GeneratedValue
     15    @Column(name="movie_id", nullable = false)
     16    private int movie_id;
    717
    8 @Entity
    9 @Table(name = "movies", schema = "project", catalog = "db_202122z_va_prj_wediscussmovies")
    10 public class Movie {
    11     @GeneratedValue(strategy = GenerationType.IDENTITY)
    12     @Id
    13     @Column(name = "movie_id")
    14     private int movieId;
    15     @Basic
    16     @Column(name = "title")
    17     private String title;
    18     @Basic
    19     @Column(name = "description")
     18    @Column(name="title", length = 150, unique = true, nullable = false)
     19    private String Title;
     20
     21    @Column(name="description", nullable = false, length = 1000)
    2022    private String description;
    21     @Basic
    22     @Column(name = "image_url")
    23     private String imageUrl;
    24     @Basic
    25     @Column(name = "airing_date")
    26     private Date airingDate;
    27     @Basic
    28     @Column(name = "imdb_rating")
    29     private Double imdbRating;
    30     @Basic
    31     @Column(name = "director_id")
    32     private Integer directorId;
    33     @OneToMany(mappedBy = "moviesByMovieId")
    34     private Collection<Discussion> discussionsByMovieId;
    35     @OneToMany(mappedBy = "moviesByMovieId")
    36     private Collection<MovieActorsEntity> movieActorsByMovieId;
    37     @OneToMany(mappedBy = "moviesByMovieId")
    38     private Collection<MovieGenresEntity> movieGenresByMovieId;
    39     @OneToMany(mappedBy = "moviesByMovieId")
    40     private Collection<MovieLikesEntity> movieLikesByMovieId;
    41     @OneToMany(mappedBy = "moviesByMovieId")
    42     private Collection<MovieRatesEntity> movieRatesByMovieId;
     23
     24    @Column(name="image_url", length = 300, nullable = false)
     25    private String image_url;
     26
     27    @Column(name="airing_date")
     28    private Date airing_date;
     29
     30    @Column(name="imdb_rating")
     31    private float imdb_rating;
     32
     33    @Column(name="director_id")
    4334    @ManyToOne
    44     @JoinColumn(name = "director_id", referencedColumnName = "person_id",insertable = false, updatable = false)
    45     private Person personsByDirectorId;
     35    private Person director;
    4636
    47     public int getMovieId() {
    48         return movieId;
     37    @ManyToMany(mappedBy = "movie_actors")
     38    private List<Person> actors;
     39
     40    @ManyToMany(mappedBy = "movie_genres")
     41    private List<Genre> genres;
     42
     43    public boolean isFromGenre(Genre genre){
     44        for(Genre g: genres){
     45            if(g.getGenre_id() == genre.getGenre_id())
     46                return true;
     47        }
     48        return false;
     49    }
     50    public boolean hasActor(Person p){
     51        for(Person person: actors){
     52            if(person.getPerson_id() == p.getPerson_id())
     53                return true;
     54        }
     55        return false;
    4956    }
    5057
    51     public void setMovieId(int movieId) {
    52         this.movieId = movieId;
     58    public boolean isDirectedBy(Person p){
     59        return director.getPerson_id() == p.getPerson_id();
    5360    }
    5461
    55     public String getTitle() {
    56         return title;
    57     }
    58 
    59     public void setTitle(String title) {
    60         this.title = title;
    61     }
    62 
    63     public String getDescription() {
    64         return description;
    65     }
    66 
    67     public void setDescription(String description) {
    68         this.description = description;
    69     }
    70 
    71     public String getImageUrl() {
    72         return imageUrl;
    73     }
    74 
    75     public void setImageUrl(String imageUrl) {
    76         this.imageUrl = imageUrl;
    77     }
    78 
    79     public Date getAiringDate() {
    80         return airingDate;
    81     }
    82 
    83     public void setAiringDate(Date airingDate) {
    84         this.airingDate = airingDate;
    85     }
    86 
    87     public Double getImdbRating() {
    88         return imdbRating;
    89     }
    90 
    91     public void setImdbRating(Double imdbRating) {
    92         this.imdbRating = imdbRating;
    93     }
    94 
    95     public Integer getDirectorId() {
    96         return directorId;
    97     }
    98 
    99     public void setDirectorId(Integer directorId) {
    100         this.directorId = directorId;
    101     }
    102 
    103     @Override
    104     public boolean equals(Object o) {
    105         if (this == o) return true;
    106         if (o == null || getClass() != o.getClass()) return false;
    107 
    108         Movie that = (Movie) o;
    109 
    110         if (movieId != that.movieId) return false;
    111         if (!Objects.equals(title, that.title)) return false;
    112         if (!Objects.equals(description, that.description)) return false;
    113         if (!Objects.equals(imageUrl, that.imageUrl)) return false;
    114         if (!Objects.equals(airingDate, that.airingDate)) return false;
    115         if (!Objects.equals(imdbRating, that.imdbRating)) return false;
    116         if (!Objects.equals(directorId, that.directorId)) return false;
    117 
    118         return true;
    119     }
    120 
    121     public Movie(String title, String description, String imageUrl, Date airingDate, Double imdbRating, Integer directorId) {
    122         this.title = title;
    123         this.description = description;
    124         this.imageUrl = imageUrl;
    125         this.airingDate = airingDate;
    126         this.imdbRating = imdbRating;
    127         this.directorId = directorId;
    128     }
     62    public static Comparator<Movie> comparatorTitle = Comparator.comparing(Movie::getTitle);
    12963
    13064    public Movie() {
    13165    }
    13266
    133     @Override
    134     public int hashCode() {
    135         int result = movieId;
    136         result = 31 * result + (title != null ? title.hashCode() : 0);
    137         result = 31 * result + (description != null ? description.hashCode() : 0);
    138         result = 31 * result + (imageUrl != null ? imageUrl.hashCode() : 0);
    139         result = 31 * result + (airingDate != null ? airingDate.hashCode() : 0);
    140         result = 31 * result + (imdbRating != null ? imdbRating.hashCode() : 0);
    141         result = 31 * result + (directorId != null ? directorId.hashCode() : 0);
    142         return result;
    143     }
    144 
    145     public Collection<Discussion> getDiscussionsByMovieId() {
    146         return discussionsByMovieId;
    147     }
    148 
    149     public void setDiscussionsByMovieId(Collection<Discussion> discussionsByMovieId) {
    150         this.discussionsByMovieId = discussionsByMovieId;
    151     }
    152 
    153     public Collection<MovieActorsEntity> getMovieActorsByMovieId() {
    154         return movieActorsByMovieId;
    155     }
    156 
    157     public void setMovieActorsByMovieId(Collection<MovieActorsEntity> movieActorsByMovieId) {
    158         this.movieActorsByMovieId = movieActorsByMovieId;
    159     }
    160 
    161     public Collection<MovieGenresEntity> getMovieGenresByMovieId() {
    162         return movieGenresByMovieId;
    163     }
    164 
    165     public void setMovieGenresByMovieId(Collection<MovieGenresEntity> movieGenresByMovieId) {
    166         this.movieGenresByMovieId = movieGenresByMovieId;
    167     }
    168 
    169     public Collection<MovieLikesEntity> getMovieLikesByMovieId() {
    170         return movieLikesByMovieId;
    171     }
    172 
    173     public void setMovieLikesByMovieId(Collection<MovieLikesEntity> movieLikesByMovieId) {
    174         this.movieLikesByMovieId = movieLikesByMovieId;
    175     }
    176 
    177     public Collection<MovieRatesEntity> getMovieRatesByMovieId() {
    178         return movieRatesByMovieId;
    179     }
    180 
    181     public void setMovieRatesByMovieId(Collection<MovieRatesEntity> movieRatesByMovieId) {
    182         this.movieRatesByMovieId = movieRatesByMovieId;
    183     }
    184 
    185     public Person getPersonsByDirectorId() {
    186         return personsByDirectorId;
    187     }
    188 
    189     public void setPersonsByDirectorId(Person personsByDirectorId) {
    190         this.personsByDirectorId = personsByDirectorId;
     67    public Movie(String title, String description, String image_url, Date airing_date, float imdb_rating, Person director, List<Person> actors, List<Genre> genres) {
     68        Title = title;
     69        this.description = description;
     70        this.image_url = image_url;
     71        this.airing_date = airing_date;
     72        this.imdb_rating = imdb_rating;
     73        this.director = director;
     74        this.actors = actors;
     75        this.genres = genres;
    19176    }
    19277}
     78
     79
     80/*
     81
     82    create table movies(
     83        movie_id serial primary key,
     84        title varchar(150) not null unique,
     85        description varchar(1000) not null,
     86        image_url varchar(300) not null,
     87        airing_date date not null,
     88        imdb_rating float,
     89        director_id integer,
     90        constraint fk_movie_director foreign key (director_id) references persons(person_id)
     91        on delete cascade on update cascade,
     92        constraint ck_person_is_director check( check_constraint_person(director_id) = 'D')
     93    );
     94 */
Note: See TracChangeset for help on using the changeset viewer.