"""Bot/daemons for doing stuff with GitLab."""

import logging

from django.db import models

log = logging.getLogger(__name__)


class GitlabConfig(models.Model):

    """Maintain bot-wide settings (URL, auth key, etc.)."""

    url = models.URLField()
    token = models.CharField(max_length=64)

    def __str__(self):
        """String representation."""
        return "bot @ {0:s}".format(self.url)


class GitlabProjectConfig(models.Model):

    """Maintain settings for a particular project in GitLab."""

    gitlab_config = models.ForeignKey('GitlabConfig', null=True)
    project_id = models.CharField(max_length=64, unique=True)

    manage_merge_request_code_reviews = models.BooleanField(default=False)
    code_reviews_necessary = models.PositiveSmallIntegerField(default=0)
    code_reviewers = models.TextField(default='', blank=True)
    code_review_final_merge_assignees = models.TextField(default='', blank=True)

    def __str__(self):
        """String representation."""
        return "configuration for {0:s} @ {1:s}".format(self.project_id, self.gitlab_config.url)