class Card(db.Document): STATUS_CHOICES = ( ('todo', 'Todo'), ('in_progress', 'In progress'), ('in_review', 'In review'), ('done', 'Done'), ) title = db.StringField(required=True, unique_with='board') content = db.StringField(required=True) created_at = db.DateTimeField(default=now()) created_by = db.ReferenceField('User') completed_at = db.DateTimeField(required=False) planned_start_time = db.DateTimeField(required=False) planned_end_time = db.DateTimeField(required=False) status = db.StringField(choices=STATUS_CHOICES, default='todo') comments = db.ListField(db.ReferenceField('Comment')) board = db.ReferenceField('Board') def save(self, *args, **kwargs): instance = super(Card, self).save(*args, **kwargs) if self.planned_start_time and self.planned_start_time.replace(tzinfo=utc) > now(): from app import schedule_card_start_time schedule_card_start_time.apply_async(kwargs={'card_id': str(self.id)}, eta=self.planned_start_time) if self.planned_end_time and self.planned_end_time.replace(tzinfo=utc) > now(): from app import schedule_card_end_time schedule_card_end_time.apply_async(kwargs={'card_id': str(self.id)}, eta=self.planned_end_time) if self.completed_at: self.completed_at = now() instance.save() return instance
class TaskList(BaseModel): name = db.StringField(required=True) dead_line = db.DateTimeField(required=False) tasks = db.ListField( db.ReferenceField('Task', reverse_delete_rule=db.CASCADE)) created_by = db.ReferenceField('User')
class Board(db.Document): STATUS_CHOICES = ( ('active', 'Active'), ('archived', 'Archived'), ) name = db.StringField(required=True, unique=True) status = db.StringField(choices=STATUS_CHOICES, default='active') created_at = db.DateTimeField(default=now()) created_by = db.ReferenceField('User') cards = db.ListField(db.ReferenceField('Card'))
class User(db.Document): email = db.EmailField(required=True, unique=True) password = db.StringField(required=True, min_length=6) movies = db.ListField(db.ReferenceField('Movie', reverse_delete_rule=db.PULL)) def hash_password(self): self.password = generate_password_hash(self.password).decode('utf8') def check_password(self, password): return check_password_hash(self.password, password)
class User(BaseModel): name = db.StringField(required=True, unique=True) email = db.EmailField(requred=True, unique=True) password = db.StringField(required=True, min_length=6) task_lists = db.ListField( db.ReferenceField('TaskList', revese_delete_rule=db.CASCADE), required=False ) def hash_password(self): self.password = generate_password_hash(self.password).decode('utf8') def check_password(self, password): return check_password_hash(self.password, password)
class Project(db.Document): link = db.StringField(required=True) title = db.StringField(required=True) contributors = db.ListField(db.StringField()) description = db.StringField(required=True)
class authoritative_zone(db.Document): zone_name = db.StringField(required=True, unique=True) primary_server = db.StringField(required=True, unique=True) EA = db.ListField(required=False) Records = db.ListField(required=False, unique=True)
class User(db.Document): email = db.StringField(require=True, unique=True) password = db.StringField(require=True) token = db.ListField(db.StringField())
class Episodes(db.Document): name = db.StringField(required=True) description = db.StringField(required=True) duration = db.StringField(required=True) link = db.ListField(db.StringField(), required=True)
class Movie(db.Document): name = db.StringField(required=True, unique=True) casts = db.ListField(db.StringField(), required=True) genres = db.ListField(db.StringField(), required=True) added_by = db.ReferenceField('User')
class VideoInfo(db.Document): video_id = db.IntField(required=True, primary_key=True) comments = db.ListField(db.EmbeddedDocumentField(Comment), required=False) likes = db.ListField(db.IntField(), required=False)
class Series(db.Document): name = db.StringField(required=True) description = db.StringField(required=True) director = db.StringField(required=True) seasons = db.ListField(db.StringField(), required=True) cast = db.ListField(db.StringField(), required=True)
class Seasons(db.Document): name = db.StringField(required=True) episodes = db.ListField(db.StringField(), required=True)
class Movie(db.Document): name = db.StringField(required=True, unique=True) ano = db.IntField(require=True, unique=True) genero = db.ListField(db.StringField(), required=True)
class PendingRequest(db.Document): user_id = db.IntField(primary_key=True) requests = db.ListField(db.IntField(), required=False)
class Friends(db.Document): user_id = db.IntField(primary_key=True) friends = db.ListField(db.IntField(), required=False)
class Movie(db.DynamicDocument): name = db.StringField(required=True, unique=True) casts = db.ListField(db.StringField(), required=True) genres = db.ListField(db.StringField(), required=True) director = db.ReferenceField(Director)
class MediaList(db.Document): name = db.StringField(required=True) medialist = db.ListField(db.StringField(), required=True)
class Movies(db.Document): name = db.StringField(required=True) description = db.StringField(required=True) director = db.StringField(required=True) duration = db.StringField(required=True) cast = db.ListField(db.StringField(), required=True)