| 
							- # pylint: disable = missing-class-docstring
 - # pylint: disable = missing-function-docstring
 - 
 - """
 - ぼざクリ DB の構成
 - """
 - 
 - from __future__ import annotations
 - 
 - from datetime import date, datetime
 - 
 - from db.my_eloquent import Model
 - 
 - 
 - class Comment (Model):
 -     # pylint: disable = too-many-instance-attributes
 - 
 -     id:         int
 -     video_id:   int
 -     comment_no: int
 -     user_id:    int
 -     content:    str
 -     posted_at:  datetime
 -     nico_count: int
 -     vpos_ms:    int
 - 
 -     __timestamps__ = False
 - 
 -     @property
 -     def video (
 -             self,
 -     ) -> Video:
 -         return self.belongs_to (Video)
 - 
 -     @property
 -     def user (
 -             self,
 -     ) -> User:
 -         return self.belongs_to (User)
 - 
 -     def upsert (
 -             self,
 -             *args:  str,
 -     ) -> None:
 -         super ().upsert ('video_id', 'comment_no')
 - 
 - 
 - class Tag (Model):
 -     id:     int
 -     name:   str
 - 
 -     __timestamps__ = False
 - 
 -     @property
 -     def video_tags (
 -             self,
 -     ) -> list[VideoTag]:
 -         return self.has_many (VideoTag)
 - 
 - 
 - class User (Model):
 -     id:     int
 -     code:   str
 - 
 -     __timestamps__ = False
 - 
 -     @property
 -     def comments (
 -             self,
 -     ) -> list[Comment]:
 -         return self.has_many (Comment)
 - 
 - 
 - class Video (Model):
 -     id:             int
 -     code:           str
 -     title:          str
 -     description:    str
 -     uploaded_at:    datetime
 -     deleted_at:     datetime | None
 - 
 -     __timestamps__ = False
 - 
 -     @property
 -     def video_histories (
 -             self,
 -     ) -> list[VideoHistory]:
 -         return self.has_many (VideoHistory)
 - 
 -     @property
 -     def video_tags (
 -             self,
 -     ) -> list[VideoTag]:
 -         return self.has_many (VideoTag)
 - 
 -     @property
 -     def comments (
 -             self,
 -     ) -> list[Comment]:
 -         return self.has_many (Comment)
 - 
 -     def upsert (
 -             self,
 -             *args:  str,
 -     ) -> None:
 -         super ().upsert ('code')
 - 
 - 
 - class VideoHistory (Model):
 -     id:             int
 -     video_id:       int
 -     fetched_at:     date
 -     views_count:    int
 - 
 -     __timestamps__ = False
 - 
 -     @property
 -     def video (
 -             self,
 -     ) -> Video:
 -         return self.belongs_to (Video)
 - 
 -     def upsert (
 -             self,
 -             *args:  str,
 -     ) -> None:
 -         super ().upsert ('video_id', 'fetched_at')
 - 
 - 
 - class VideoTag (Model):
 -     id:             int
 -     video_id:       int
 -     tag_id:         int
 -     tagged_at:      date
 -     untagged_at:    date | None
 - 
 -     __timestamps__ = False
 - 
 -     @property
 -     def video (
 -             self,
 -     ) -> Video:
 -         return self.belongs_to (Video)
 - 
 -     @property
 -     def tag (
 -             self,
 -     ) -> Tag:
 -         return self.belongs_to (Tag)
 - 
 -     def upsert (
 -             self,
 -             *args:  str,
 -     ) -> None:
 -         super ().upsert ('video_id', 'tag_id')
 
 
  |