namespace minimalMantis {

namespace mantis {
    include resources/blocks/mantis.txt(mantisTool,"issue");
}

tool mantisTool {
    label "Mantis";
    text md/mantis/mantis_tool.md,
        md/mantis/guidelines.md; 
}

repository mantisRepository {
    label "Mantis database";
    contains issues;
    text md/mantis/mantis_tool.md; 
}

folder issues {
    label "issues";
    contains mantis_issue;
}
        
process minimalMantis {
    label "minimal Mantis";    
    responsible projectManager;
    repository mantisRepository;
    subactivities maintainCustomerRelation,
        develop,
        teamLeading,
        testing;
    text  md/minimalMantis/process.md;
}

role projectManager {
    label "project manager";
    brief "the over all responsible for this project";
    text md/project_manager.md; 
}

role productManager {
    label "product Manager";
    brief "The product manager gets in contact with the customer(s) and fetch their requirements and bug reports";
}

role developer {
    label "developer";
    brief "the devoloper is the role in the project who has the technical skills.";
}

role teamLead {
    label "team leader";
}

role tester {
    label "tester";
}

activity testing {
    label "testing";
    responsible tester;
    subactivities
        mantis_issueTest;
}

activity teamLeading {
    label "team leading";
    responsible teamLead;
    subactivities
        mantis_planning;
}

activity maintainCustomerRelation {
    label "maitain customer relation";
    brief "Get in contact with the customer(s) and fetch their requirements and bug reports";
    responsible productManager;
    subactivities  
        mantis_createIssue, 
        mantis_feedback,
        mantis_effortReview;
}

activity develop {
    label "develop";
    responsible developer;
    set mantis_issue(Assigned,null);
    subactivities
        mantis_technicalPreview,
        mantis_reportIssueSolved;
}

}