From 5837b8c7db2679813d3bcd22b4e3d2c1f1fe6edb Mon Sep 17 00:00:00 2001 From: subin Date: Mon, 8 Jul 2024 14:24:10 +0900 Subject: [PATCH] =?UTF-8?q?=EC=97=94=ED=8B=B0=ED=8B=B0=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20=ED=9B=84=20=ED=86=B5=EA=B3=84,=20=EC=A0=95?= =?UTF-8?q?=EC=82=B0=20=ED=8C=8C=EC=9D=BC=20ad,video=20=EB=94=B0=EB=A1=9C?= =?UTF-8?q?=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/StatisticController.java | 51 ------------------ .../controller/StatisticsVideoController.java | 12 +++++ .../dto/request/PaymentVideoRequestDto.java | 15 ++++++ ...Dto.java => StatisticVideoRequestDto.java} | 4 +- .../dto/response/PaymentVideoResponseDto.java | 25 +++++++++ .../dto/response/StatisticResponseDto.java | 31 ----------- .../response/StatisticVideoResponseDto.java | 27 ++++++++++ .../com/sparta/binplay/entity/PaymentAd.java | 30 +++++++++++ .../sparta/binplay/entity/StatisticAd.java | 39 ++++++++++++++ .../sparta/binplay/entity/StatisticVideo.java | 52 ++++++++++++++++++ .../com/sparta/binplay/entity/Statistics.java | 29 ---------- .../repository/PaymentAdRepository.java | 9 ++++ .../repository/PaymentVideoRepository.java | 13 +++++ .../repository/StatisticAdRepository.java | 9 ++++ .../repository/StatisticRepository.java | 18 ------- .../repository/StatisticVideoRepository.java | 12 +++++ .../binplay/service/PaymentService.java | 25 +++++++++ .../binplay/service/StatisticService.java | 53 ------------------- .../service/StatisticsVideoService.java | 14 +++++ 19 files changed, 284 insertions(+), 184 deletions(-) delete mode 100644 src/main/java/com/sparta/binplay/controller/StatisticController.java create mode 100644 src/main/java/com/sparta/binplay/controller/StatisticsVideoController.java create mode 100644 src/main/java/com/sparta/binplay/dto/request/PaymentVideoRequestDto.java rename src/main/java/com/sparta/binplay/dto/request/{StatisticRequestDto.java => StatisticVideoRequestDto.java} (72%) create mode 100644 src/main/java/com/sparta/binplay/dto/response/PaymentVideoResponseDto.java delete mode 100644 src/main/java/com/sparta/binplay/dto/response/StatisticResponseDto.java create mode 100644 src/main/java/com/sparta/binplay/dto/response/StatisticVideoResponseDto.java create mode 100644 src/main/java/com/sparta/binplay/entity/PaymentAd.java create mode 100644 src/main/java/com/sparta/binplay/entity/StatisticAd.java create mode 100644 src/main/java/com/sparta/binplay/entity/StatisticVideo.java delete mode 100644 src/main/java/com/sparta/binplay/entity/Statistics.java create mode 100644 src/main/java/com/sparta/binplay/repository/PaymentAdRepository.java create mode 100644 src/main/java/com/sparta/binplay/repository/PaymentVideoRepository.java create mode 100644 src/main/java/com/sparta/binplay/repository/StatisticAdRepository.java delete mode 100644 src/main/java/com/sparta/binplay/repository/StatisticRepository.java create mode 100644 src/main/java/com/sparta/binplay/repository/StatisticVideoRepository.java create mode 100644 src/main/java/com/sparta/binplay/service/PaymentService.java delete mode 100644 src/main/java/com/sparta/binplay/service/StatisticService.java create mode 100644 src/main/java/com/sparta/binplay/service/StatisticsVideoService.java diff --git a/src/main/java/com/sparta/binplay/controller/StatisticController.java b/src/main/java/com/sparta/binplay/controller/StatisticController.java deleted file mode 100644 index 020c891..0000000 --- a/src/main/java/com/sparta/binplay/controller/StatisticController.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.sparta.binplay.controller; - -import com.sparta.binplay.dto.response.StatisticResponseDto; -import com.sparta.binplay.service.StatisticService; -import lombok.RequiredArgsConstructor; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.List; - -@RestController -@RequiredArgsConstructor -@RequestMapping("/stat") -public class StatisticController { - private final StatisticService statisticService; - - //특정 비디오 검색 - @GetMapping("/{videoId}") - public ResponseEntity> getMyStatistics(@PathVariable Long videoId) throws Exception { - List statistics = statisticService.getStatisticList(videoId); - return ResponseEntity.status(HttpStatus.OK).body(statistics); - } - - // 모든 통계를 조회하는 엔드포인트 - @GetMapping("/all") - public ResponseEntity> getAllStatistics() throws Exception { - List statistics = statisticService.getAllStatistics(); - return ResponseEntity.status(HttpStatus.OK).body(statistics); - } - - @GetMapping("/top5/day") - public ResponseEntity> getTop5VideosLastDay() { - return ResponseEntity.ok(statisticService.getTop5VideosByViewsLastDay()); - } - - @GetMapping("/top5/week") - public ResponseEntity> getTop5VideosLastWeek() { - return ResponseEntity.ok(statisticService.getTop5VideosByViewsLastWeek()); - } - - @GetMapping("/top5/month") - public ResponseEntity> getTop5VideosLastMonth() { - return ResponseEntity.ok(statisticService.getTop5VideosByViewsLastMonth()); - } - - -} diff --git a/src/main/java/com/sparta/binplay/controller/StatisticsVideoController.java b/src/main/java/com/sparta/binplay/controller/StatisticsVideoController.java new file mode 100644 index 0000000..a74d2ee --- /dev/null +++ b/src/main/java/com/sparta/binplay/controller/StatisticsVideoController.java @@ -0,0 +1,12 @@ +package com.sparta.binplay.controller; + +import com.sparta.binplay.service.StatisticsVideoService; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/stat") +public class StatisticsVideoController { +} diff --git a/src/main/java/com/sparta/binplay/dto/request/PaymentVideoRequestDto.java b/src/main/java/com/sparta/binplay/dto/request/PaymentVideoRequestDto.java new file mode 100644 index 0000000..438a74e --- /dev/null +++ b/src/main/java/com/sparta/binplay/dto/request/PaymentVideoRequestDto.java @@ -0,0 +1,15 @@ +package com.sparta.binplay.dto.request; + +import com.sparta.binplay.entity.Videos; +import lombok.Getter; + +@Getter +public class PaymentVideoRequestDto { + private Double totalAmount; + private Videos video; + + public PaymentVideoRequestDto(Double totalAmount, Videos video) { + this.totalAmount = totalAmount; + this.video = video; + } +} diff --git a/src/main/java/com/sparta/binplay/dto/request/StatisticRequestDto.java b/src/main/java/com/sparta/binplay/dto/request/StatisticVideoRequestDto.java similarity index 72% rename from src/main/java/com/sparta/binplay/dto/request/StatisticRequestDto.java rename to src/main/java/com/sparta/binplay/dto/request/StatisticVideoRequestDto.java index 5539101..04105f8 100644 --- a/src/main/java/com/sparta/binplay/dto/request/StatisticRequestDto.java +++ b/src/main/java/com/sparta/binplay/dto/request/StatisticVideoRequestDto.java @@ -4,13 +4,13 @@ import lombok.Getter; @Getter -public class StatisticRequestDto { +public class StatisticVideoRequestDto { private String period; private long periodViews; private int totalViewingTime; private Videos video; - public StatisticRequestDto(String period, long periodViews, int totalViewingTime, Videos video) { + public StatisticVideoRequestDto(String period, long periodViews, int totalViewingTime, Videos video) { this.period = period; this.periodViews = periodViews; this.totalViewingTime = totalViewingTime; diff --git a/src/main/java/com/sparta/binplay/dto/response/PaymentVideoResponseDto.java b/src/main/java/com/sparta/binplay/dto/response/PaymentVideoResponseDto.java new file mode 100644 index 0000000..4257c7e --- /dev/null +++ b/src/main/java/com/sparta/binplay/dto/response/PaymentVideoResponseDto.java @@ -0,0 +1,25 @@ +package com.sparta.binplay.dto.response; + +import com.sparta.binplay.entity.PaymentVideo; +import lombok.*; + +import java.time.LocalDateTime; + +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class PaymentVideoResponseDto { + private Long paymentId; + private Double totalAmount; + private LocalDateTime createAt; + + public static PaymentVideoResponseDto from(PaymentVideo payment) { + return PaymentVideoResponseDto.builder() + .paymentId(payment.getPaymentVideoId()) + .totalAmount(payment.getTotalAmount()) + .createAt(payment.getCreatedAt()) + .build(); + } +} diff --git a/src/main/java/com/sparta/binplay/dto/response/StatisticResponseDto.java b/src/main/java/com/sparta/binplay/dto/response/StatisticResponseDto.java deleted file mode 100644 index e554653..0000000 --- a/src/main/java/com/sparta/binplay/dto/response/StatisticResponseDto.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.sparta.binplay.dto.response; - -import com.sparta.binplay.entity.Statistics; -import lombok.*; - -import java.time.LocalDateTime; - -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class StatisticResponseDto { - private Long statId; - private String period; - private long periodViews; - private int totalViewingTime; - private LocalDateTime createTime; - private LocalDateTime updateTime; - - public static StatisticResponseDto from(Statistics statistic) { - return StatisticResponseDto.builder() - .statId(statistic.getStatId()) - .period(statistic.getPeriod()) - .periodViews(statistic.getPeriodViews()) - .totalViewingTime(statistic.getTotalViewingTime()) - .createTime(statistic.getCreatedAt()) - .updateTime(statistic.getUpdatedAt()) - .build(); - } -} diff --git a/src/main/java/com/sparta/binplay/dto/response/StatisticVideoResponseDto.java b/src/main/java/com/sparta/binplay/dto/response/StatisticVideoResponseDto.java new file mode 100644 index 0000000..7ac505b --- /dev/null +++ b/src/main/java/com/sparta/binplay/dto/response/StatisticVideoResponseDto.java @@ -0,0 +1,27 @@ +package com.sparta.binplay.dto.response; + +import com.sparta.binplay.entity.StatisticVideo; +import lombok.*; + +import java.time.LocalDateTime; + +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class StatisticVideoResponseDto { + private Long statVideoId; + private long dailyViewCount; + private int dailyPlayTime; + private LocalDateTime createdAt; + + public static StatisticVideoResponseDto from(StatisticVideo statisticVideo) { + return StatisticVideoResponseDto.builder() + .statVideoId(statisticVideo.getStatVideoId()) + .dailyViewCount(statisticVideo.getDailyViewCount()) + .dailyPlayTime(statisticVideo.getDailyPlayTime()) + .createdAt(statisticVideo.getCreatedAt()) + .build(); + } +} diff --git a/src/main/java/com/sparta/binplay/entity/PaymentAd.java b/src/main/java/com/sparta/binplay/entity/PaymentAd.java new file mode 100644 index 0000000..aede38a --- /dev/null +++ b/src/main/java/com/sparta/binplay/entity/PaymentAd.java @@ -0,0 +1,30 @@ +package com.sparta.binplay.entity; + +import jakarta.persistence.*; +import lombok.Getter; +import lombok.NoArgsConstructor; +import org.springframework.data.annotation.CreatedDate; + +import java.time.LocalDateTime; + +@Entity +@Getter +@Table(name="payments_ad") +@NoArgsConstructor +public class PaymentAd { + @Id + @Column(name="payment_ad_id") + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long paymentAdId; + + @Column(name="total_amount", nullable = false) + private Double totalAmount; + + @CreatedDate + @Column(name="created_at", updatable = false) + private LocalDateTime createdAt; + + @ManyToOne + @JoinColumn(name = "ad_view_id", nullable = false) + private AdViews adView; +} diff --git a/src/main/java/com/sparta/binplay/entity/StatisticAd.java b/src/main/java/com/sparta/binplay/entity/StatisticAd.java new file mode 100644 index 0000000..28e11df --- /dev/null +++ b/src/main/java/com/sparta/binplay/entity/StatisticAd.java @@ -0,0 +1,39 @@ +package com.sparta.binplay.entity; + +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import org.springframework.data.annotation.CreatedDate; + +import java.time.LocalDateTime; + +@Entity +@Getter +@Table(name="statistics_ad") +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class StatisticAd extends Timestamped{ + @Id + @Column(name = "stat_ad_id") + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long statAdId; + + @Column(name="daily_view_count", nullable = false) + private long dailyViewCount; + + @CreatedDate + @Column(name="created_at", updatable = false) //업데이트를 막음 + private LocalDateTime createdAt; + + @ManyToOne + @JoinColumn(name = "ad_view_id", nullable = false) + private AdViews adView; + + public StatisticAd(Long dailyViewCount, AdViews adView) { + this.dailyViewCount = dailyViewCount; + this.adView = adView; + } +} diff --git a/src/main/java/com/sparta/binplay/entity/StatisticVideo.java b/src/main/java/com/sparta/binplay/entity/StatisticVideo.java new file mode 100644 index 0000000..3f41ed2 --- /dev/null +++ b/src/main/java/com/sparta/binplay/entity/StatisticVideo.java @@ -0,0 +1,52 @@ +package com.sparta.binplay.entity; + +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import org.springframework.data.annotation.CreatedDate; + +import java.time.LocalDateTime; + +@Entity +@Getter +@Table(name="statistics_video") +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class StatisticVideo extends Timestamped{ + @Id + @Column(name = "stat_video_id") + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long statVideoId; + + @Column(name="daily_view_count", nullable = false) + private long dailyViewCount; + + @Column(name="daily_play_time", nullable = false) + private int dailyPlayTime; + + @CreatedDate + @Column(name="created_at", updatable = false) //업데이트를 막음 + private LocalDateTime createdAt; + + @ManyToOne + @JoinColumn(name = "video_id") + private Videos video; + + public StatisticVideo(long dailyViewCount, int dailyPlayTime, Videos video) { + this.dailyViewCount = dailyViewCount; + this.dailyPlayTime = dailyPlayTime; + this.video = video; + } + + public StatisticVideo update(Long diailyViewCount, Integer dailyPlayTime) { + return StatisticVideo.builder() + .statVideoId(this.statVideoId) // ID를 유지하여 동일 엔티티로 인식 + .dailyViewCount(diailyViewCount) + .dailyPlayTime(dailyPlayTime) + .video(this.video) + .build(); + } +} diff --git a/src/main/java/com/sparta/binplay/entity/Statistics.java b/src/main/java/com/sparta/binplay/entity/Statistics.java deleted file mode 100644 index 47baae8..0000000 --- a/src/main/java/com/sparta/binplay/entity/Statistics.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.sparta.binplay.entity; - -import jakarta.persistence.*; -import lombok.Getter; -import lombok.NoArgsConstructor; - -@Entity -@Getter -@Table(name="statistics") -@NoArgsConstructor -public class Statistics extends Timestamped{ - @Id - @Column(name = "stat_id") - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long statId; - - @Column(name="period", nullable = false) - private String period; - - @Column(name="period_views", nullable = false) - private Long periodViews; - - @Column(name="total_viewing_time", nullable = false) - private Integer totalViewingTime; - - @ManyToOne - @JoinColumn(name = "video_id", nullable = false) - private Videos video; -} diff --git a/src/main/java/com/sparta/binplay/repository/PaymentAdRepository.java b/src/main/java/com/sparta/binplay/repository/PaymentAdRepository.java new file mode 100644 index 0000000..9db0808 --- /dev/null +++ b/src/main/java/com/sparta/binplay/repository/PaymentAdRepository.java @@ -0,0 +1,9 @@ +package com.sparta.binplay.repository; + +import com.sparta.binplay.entity.PaymentVideo; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface PaymentAdRepository extends JpaRepository { +} diff --git a/src/main/java/com/sparta/binplay/repository/PaymentVideoRepository.java b/src/main/java/com/sparta/binplay/repository/PaymentVideoRepository.java new file mode 100644 index 0000000..5cd6dd0 --- /dev/null +++ b/src/main/java/com/sparta/binplay/repository/PaymentVideoRepository.java @@ -0,0 +1,13 @@ +package com.sparta.binplay.repository; + +import com.sparta.binplay.entity.PaymentVideo; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +import java.time.LocalDateTime; +import java.util.List; + +@Repository +public interface PaymentVideoRepository extends JpaRepository { + List findAllByCreatedAtBetween(LocalDateTime startDate, LocalDateTime endDate); +} diff --git a/src/main/java/com/sparta/binplay/repository/StatisticAdRepository.java b/src/main/java/com/sparta/binplay/repository/StatisticAdRepository.java new file mode 100644 index 0000000..afaabde --- /dev/null +++ b/src/main/java/com/sparta/binplay/repository/StatisticAdRepository.java @@ -0,0 +1,9 @@ +package com.sparta.binplay.repository; + +import com.sparta.binplay.entity.StatisticAd; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface StatisticAdRepository extends JpaRepository { +} diff --git a/src/main/java/com/sparta/binplay/repository/StatisticRepository.java b/src/main/java/com/sparta/binplay/repository/StatisticRepository.java deleted file mode 100644 index 3579416..0000000 --- a/src/main/java/com/sparta/binplay/repository/StatisticRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.sparta.binplay.repository; - -import com.sparta.binplay.dto.response.StatisticResponseDto; -import com.sparta.binplay.entity.Statistics; -import org.springframework.data.domain.Pageable; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.query.Param; -import org.springframework.stereotype.Repository; - -import java.util.List; - -@Repository -public interface StatisticRepository extends JpaRepository { - List findByVideoVideoId(Long videoId); - @Query("SELECT s FROM Statistics s WHERE s.period = :period ORDER BY s.periodViews DESC") - List findTop5ByPeriod(@Param("period") String period, Pageable pageable); -} diff --git a/src/main/java/com/sparta/binplay/repository/StatisticVideoRepository.java b/src/main/java/com/sparta/binplay/repository/StatisticVideoRepository.java new file mode 100644 index 0000000..e8747f4 --- /dev/null +++ b/src/main/java/com/sparta/binplay/repository/StatisticVideoRepository.java @@ -0,0 +1,12 @@ +package com.sparta.binplay.repository; + +import com.sparta.binplay.entity.StatisticVideo; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +public interface StatisticVideoRepository extends JpaRepository { + List findByVideoVideoId(Long videoId); +} diff --git a/src/main/java/com/sparta/binplay/service/PaymentService.java b/src/main/java/com/sparta/binplay/service/PaymentService.java new file mode 100644 index 0000000..2ee497f --- /dev/null +++ b/src/main/java/com/sparta/binplay/service/PaymentService.java @@ -0,0 +1,25 @@ +package com.sparta.binplay.service; + +import com.sparta.binplay.repository.PaymentVideoRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class PaymentService { + private final PaymentVideoRepository paymentRepository; +// +// @Scheduled(cron = "0 0 0 1 * ?") // 매달 1일 자정에 실행 +// public void archiveMonthlyPayments() { +// LocalDate now = LocalDate.now(); +// YearMonth lastMonth = YearMonth.from(now.minusMonths(1)); +// LocalDateTime startOfLastMonth = lastMonth.atDay(1).atStartOfDay(); +// LocalDateTime endOfLastMonth = lastMonth.atEndOfMonth().atTime(23, 59, 59); +// +// List paymentsList = paymentRepository.findAllByCreatedAtBetween(startOfLastMonth, endOfLastMonth); +// for (PaymentsVideo payment : paymentsList) { +// payment.updateArchived(true); +// paymentRepository.save(payment); +// } +// } +} diff --git a/src/main/java/com/sparta/binplay/service/StatisticService.java b/src/main/java/com/sparta/binplay/service/StatisticService.java deleted file mode 100644 index b1c8163..0000000 --- a/src/main/java/com/sparta/binplay/service/StatisticService.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.sparta.binplay.service; - -import com.sparta.binplay.dto.response.StatisticResponseDto; -import com.sparta.binplay.entity.Statistics; -import com.sparta.binplay.repository.StatisticRepository; -import com.sparta.binplay.repository.VideoRepository; -import lombok.RequiredArgsConstructor; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Pageable; -import org.springframework.stereotype.Service; - -import java.util.List; -import java.util.stream.Collectors; - -@Service -@RequiredArgsConstructor -public class StatisticService { - private final StatisticRepository statisticRepository; - private final VideoRepository videoRepository; - - //모든 통계 조회 - public List getAllStatistics() throws Exception { - List statistics = statisticRepository.findAll(); - return statistics.stream() - .map(StatisticResponseDto::from) - .collect(Collectors.toList()); - } - - //특정 비디오 통계 조회 - public List getStatisticList(Long videoId) throws Exception { - List statistics = statisticRepository.findByVideoVideoId(videoId); - return statistics.stream() - .map(StatisticResponseDto::from) - .collect(Collectors.toList()); - } - - public List getTop5VideosByViews(String period) { - Pageable topFive = PageRequest.of(0, 5); - return statisticRepository.findTop5ByPeriod(period, topFive); - } - - public List getTop5VideosByViewsLastDay() { - return getTop5VideosByViews("DAILY"); - } - - public List getTop5VideosByViewsLastWeek() { - return getTop5VideosByViews("WEEKLY"); - } - - public List getTop5VideosByViewsLastMonth() { - return getTop5VideosByViews("MONTHLY"); - } -} diff --git a/src/main/java/com/sparta/binplay/service/StatisticsVideoService.java b/src/main/java/com/sparta/binplay/service/StatisticsVideoService.java new file mode 100644 index 0000000..cf0cb08 --- /dev/null +++ b/src/main/java/com/sparta/binplay/service/StatisticsVideoService.java @@ -0,0 +1,14 @@ +package com.sparta.binplay.service; + +import com.sparta.binplay.repository.StatisticVideoRepository; +import com.sparta.binplay.repository.VideoRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class StatisticsVideoService { + private final StatisticVideoRepository statisticRepository; + private final VideoRepository videoRepository; + +}