blob: b5779c8bc646c8938e5543210acbc7a7d41137f6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
import sqlalchemy as sa
import sqlalchemy_utils as sau
from srht.database import Base
from enum import Enum
class RepoVisibility(Enum):
autocreated = 'autocreated'
"""Used for repositories that were created automatically on push"""
public = 'public'
private = 'private'
unlisted = 'unlisted'
class Repository(Base):
__tablename__ = 'repository'
id = sa.Column(sa.Integer, primary_key=True)
created = sa.Column(sa.DateTime, nullable=False)
updated = sa.Column(sa.DateTime, nullable=False)
name = sa.Column(sa.Unicode(256), nullable=False)
description = sa.Column(sa.Unicode(1024))
owner_id = sa.Column(sa.Integer, sa.ForeignKey('user.id'), nullable=False)
owner = sa.orm.relationship('User', backref=sa.orm.backref('repos'))
path = sa.Column(sa.Unicode(1024))
visibility = sa.Column(
sau.ChoiceType(RepoVisibility, impl=sa.String()),
nullable=False,
default=RepoVisibility.public)
|