from yams.buildobjs import (EntityType, RelationType, SubjectRelation,
                            RichString)
from cubicweb.schema import RRQLExpression


class Comment(EntityType):
    """a comment is a reply about another entity"""
    __permissions__ = {
        'read':   ('managers', 'users', 'guests',),
        'add':    ('managers', 'users',),
        'delete': ('managers', 'owners',),
        'update': ('managers', 'owners',),
    }
    content = RichString(required=True, fulltextindexed=True)
    comments = SubjectRelation('Comment', cardinality='1*', composite='object')


class comments(RelationType):
    __permissions__ = {
        'read':   ('managers', 'users', 'guests'),
        'add':    ('managers', 'users',),
        'delete': ('managers', RRQLExpression('S owned_by U'),),
    }
    inlined = True
    composite = 'object'
    cardinality = '1*'
