flix_db/entity/info/
episodes.rs1use flix_model::id::ShowId;
4
5use chrono::NaiveDate;
6use flix_model::numbers::{EpisodeNumber, SeasonNumber};
7use sea_orm::{
8 ActiveModelBehavior, DeriveEntityModel, DerivePrimaryKey, DeriveRelation, EntityTrait,
9 EnumIter, PrimaryKeyTrait, Related, RelationDef, RelationTrait,
10};
11
12#[derive(Debug, Clone, DeriveEntityModel)]
14#[sea_orm(table_name = "flix_info_episodes")]
15pub struct Model {
16 #[sea_orm(primary_key, auto_increment = false)]
18 pub show: ShowId,
19 #[sea_orm(primary_key, auto_increment = false)]
21 pub season: SeasonNumber,
22 #[sea_orm(primary_key, auto_increment = false)]
24 pub episode: EpisodeNumber,
25 pub title: String,
27 pub overview: String,
29 pub date: NaiveDate,
31}
32
33impl ActiveModelBehavior for ActiveModel {}
34
35#[derive(Debug, EnumIter, DeriveRelation)]
37pub enum Relation {
38 #[sea_orm(
40 belongs_to = "super::shows::Entity",
41 from = "Column::Show",
42 to = "super::shows::Column::Id",
43 on_update = "Cascade",
44 on_delete = "Cascade"
45 )]
46 Show,
47}
48
49impl Related<super::shows::Entity> for Entity {
50 fn to() -> RelationDef {
51 Relation::Show.def()
52 }
53}