diff --git a/docs/erd.svg b/docs/erd.svg index b31ab45..ff9fef4 100644 --- a/docs/erd.svg +++ b/docs/erd.svg @@ -1 +1 @@ -active_productuserenum:roleuseruserproductenum:statuspbiproductsprintassigneeenum:statusstoryenum:typeenum:statusproductenum:statusstoryproductsprintenum:statusenum:verify_requireduserproducttaskideaenum:kindenum:statusclaimed_by_tokenenum:verify_resultusertokenproductuseruserproductuserproductpbienum:statusideaenum:typeuserstorytaskideaproductaskeranswererRolePRODUCT_OWNERPRODUCT_OWNERSCRUM_MASTERSCRUM_MASTERDEVELOPERDEVELOPERStoryStatusOPENOPENIN_SPRINTIN_SPRINTDONEDONEPbiStatusREADYREADYBLOCKEDBLOCKEDDONEDONEClaudeJobStatusQUEUEDQUEUEDCLAIMEDCLAIMEDRUNNINGRUNNINGDONEDONEFAILEDFAILEDCANCELLEDCANCELLEDVerifyResultALIGNEDALIGNEDPARTIALPARTIALEMPTYEMPTYDIVERGENTDIVERGENTVerifyRequiredALIGNEDALIGNEDALIGNED_OR_PARTIALALIGNED_OR_PARTIALANYANYTaskStatusTO_DOTO_DOIN_PROGRESSIN_PROGRESSREVIEWREVIEWDONEDONELogTypeIMPLEMENTATION_PLANIMPLEMENTATION_PLANTEST_RESULTTEST_RESULTCOMMITCOMMITTestStatusPASSEDPASSEDFAILEDFAILEDSprintStatusACTIVEACTIVECOMPLETEDCOMPLETEDIdeaStatusDRAFTDRAFTGRILLINGGRILLINGGRILL_FAILEDGRILL_FAILEDGRILLEDGRILLEDPLANNINGPLANNINGPLAN_FAILEDPLAN_FAILEDPLAN_READYPLAN_READYPLANNEDPLANNEDClaudeJobKindTASK_IMPLEMENTATIONTASK_IMPLEMENTATIONIDEA_GRILLIDEA_GRILLIDEA_MAKE_PLANIDEA_MAKE_PLANIdeaLogTypeDECISIONDECISIONNOTENOTEGRILL_RESULTGRILL_RESULTPLAN_RESULTPLAN_RESULTSTATUS_CHANGESTATUS_CHANGEJOB_EVENTJOB_EVENTusersStringid🗝️StringusernameStringemail❓Stringpassword_hashBooleanis_demoStringbio❓Stringbio_detail❓Bytesavatar_data❓Intidea_code_counterDateTimecreated_atDateTimeupdated_atuser_rolesStringid🗝️Roleroleapi_tokensStringid🗝️Stringtoken_hashStringlabel❓DateTimecreated_atDateTimerevoked_at❓productsStringid🗝️StringnameStringcode❓Stringdescription❓Stringrepo_url❓Stringdefinition_of_doneBooleanauto_prBooleanarchivedDateTimecreated_atDateTimeupdated_atpbisStringid🗝️StringcodeStringtitleStringdescription❓IntpriorityFloatsort_orderPbiStatusstatusStringpr_url❓DateTimepr_merged_at❓DateTimecreated_atDateTimeupdated_atstoriesStringid🗝️StringcodeStringtitleStringdescription❓Stringacceptance_criteria❓IntpriorityFloatsort_orderStoryStatusstatusDateTimecreated_atDateTimeupdated_atstory_logsStringid🗝️LogTypetypeStringcontentTestStatusstatus❓Stringcommit_hash❓Stringcommit_message❓Jsonmetadata❓DateTimecreated_atsprintsStringid🗝️Stringsprint_goalSprintStatusstatusDateTimestart_date❓DateTimeend_date❓DateTimecreated_atDateTimecompleted_at❓tasksStringid🗝️StringcodeStringtitleStringdescription❓Stringimplementation_plan❓IntpriorityFloatsort_orderTaskStatusstatusBooleanverify_onlyVerifyRequiredverify_requiredStringrepo_url❓DateTimecreated_atDateTimeupdated_atclaude_jobsStringid🗝️ClaudeJobKindkindClaudeJobStatusstatusDateTimeclaimed_at❓DateTimestarted_at❓DateTimefinished_at❓DateTimepushed_at❓VerifyResultverify_result❓Stringplan_snapshot❓Stringbranch❓Stringpr_url❓Stringsummary❓Stringerror❓Intretry_countDateTimecreated_atDateTimeupdated_atclaude_workersStringid🗝️Stringproduct_id❓DateTimestarted_atDateTimelast_seen_atproduct_membersStringid🗝️DateTimecreated_attodosStringid🗝️StringtitleStringdescription❓BooleandoneBooleanarchivedDateTimecreated_atDateTimeupdated_atideasStringid🗝️StringcodeStringtitleStringdescription❓Stringgrill_md❓Stringplan_md❓IdeaStatusstatusBooleanarchivedDateTimecreated_atDateTimeupdated_atidea_logsStringid🗝️IdeaLogTypetypeStringcontentJsonmetadata❓DateTimecreated_atlogin_pairingsStringid🗝️Stringsecret_hashStringdesktop_token_hashStringstatusStringdesktop_ua❓Stringdesktop_ip❓DateTimecreated_atDateTimeexpires_atDateTimeapproved_at❓DateTimeconsumed_at❓claude_questionsStringid🗝️StringquestionJsonoptions❓StringstatusStringanswer❓DateTimeanswered_at❓DateTimecreated_atDateTimeexpires_at \ No newline at end of file +active_productuserenum:roleuseruserproductenum:statuspbiproductsprintassigneeenum:statusstoryenum:typeenum:statusproductenum:statusstoryproductsprintenum:statusenum:verify_requireduserproducttaskideaenum:kindenum:statusclaimed_by_tokenenum:verify_resultusertokenproductuseruserproductuserproductpbienum:statusideaenum:typeuserstorytaskideaproductaskeranswererRolePRODUCT_OWNERPRODUCT_OWNERSCRUM_MASTERSCRUM_MASTERDEVELOPERDEVELOPERStoryStatusOPENOPENIN_SPRINTIN_SPRINTDONEDONEPbiStatusREADYREADYBLOCKEDBLOCKEDDONEDONEClaudeJobStatusQUEUEDQUEUEDCLAIMEDCLAIMEDRUNNINGRUNNINGDONEDONEFAILEDFAILEDCANCELLEDCANCELLEDVerifyResultALIGNEDALIGNEDPARTIALPARTIALEMPTYEMPTYDIVERGENTDIVERGENTVerifyRequiredALIGNEDALIGNEDALIGNED_OR_PARTIALALIGNED_OR_PARTIALANYANYTaskStatusTO_DOTO_DOIN_PROGRESSIN_PROGRESSREVIEWREVIEWDONEDONELogTypeIMPLEMENTATION_PLANIMPLEMENTATION_PLANTEST_RESULTTEST_RESULTCOMMITCOMMITTestStatusPASSEDPASSEDFAILEDFAILEDSprintStatusACTIVEACTIVECOMPLETEDCOMPLETEDIdeaStatusDRAFTDRAFTGRILLINGGRILLINGGRILL_FAILEDGRILL_FAILEDGRILLEDGRILLEDPLANNINGPLANNINGPLAN_FAILEDPLAN_FAILEDPLAN_READYPLAN_READYPLANNEDPLANNEDClaudeJobKindTASK_IMPLEMENTATIONTASK_IMPLEMENTATIONIDEA_GRILLIDEA_GRILLIDEA_MAKE_PLANIDEA_MAKE_PLANIdeaLogTypeDECISIONDECISIONNOTENOTEGRILL_RESULTGRILL_RESULTPLAN_RESULTPLAN_RESULTSTATUS_CHANGESTATUS_CHANGEJOB_EVENTJOB_EVENTusersStringid🗝️StringusernameStringemail❓Stringpassword_hashBooleanis_demoStringbio❓Stringbio_detail❓Bytesavatar_data❓Intidea_code_counterDateTimecreated_atDateTimeupdated_atuser_rolesStringid🗝️Roleroleapi_tokensStringid🗝️Stringtoken_hashStringlabel❓DateTimecreated_atDateTimerevoked_at❓productsStringid🗝️StringnameStringcode❓Stringdescription❓Stringrepo_url❓Stringdefinition_of_doneBooleanauto_prBooleanarchivedDateTimecreated_atDateTimeupdated_atpbisStringid🗝️StringcodeStringtitleStringdescription❓IntpriorityFloatsort_orderPbiStatusstatusStringpr_url❓DateTimepr_merged_at❓DateTimecreated_atDateTimeupdated_atstoriesStringid🗝️StringcodeStringtitleStringdescription❓Stringacceptance_criteria❓IntpriorityFloatsort_orderStoryStatusstatusDateTimecreated_atDateTimeupdated_atstory_logsStringid🗝️LogTypetypeStringcontentTestStatusstatus❓Stringcommit_hash❓Stringcommit_message❓Jsonmetadata❓DateTimecreated_atsprintsStringid🗝️Stringsprint_goalSprintStatusstatusDateTimestart_date❓DateTimeend_date❓DateTimecreated_atDateTimecompleted_at❓tasksStringid🗝️StringcodeStringtitleStringdescription❓Stringimplementation_plan❓IntpriorityFloatsort_orderTaskStatusstatusBooleanverify_onlyVerifyRequiredverify_requiredStringrepo_url❓DateTimecreated_atDateTimeupdated_atclaude_jobsStringid🗝️ClaudeJobKindkindClaudeJobStatusstatusDateTimeclaimed_at❓DateTimestarted_at❓DateTimefinished_at❓DateTimepushed_at❓VerifyResultverify_result❓Stringplan_snapshot❓Stringbranch❓Stringpr_url❓Stringsummary❓Stringerror❓Intretry_countDateTimecreated_atDateTimeupdated_atclaude_workersStringid🗝️Stringproduct_id❓DateTimestarted_atDateTimelast_seen_atproduct_membersStringid🗝️DateTimecreated_attodosStringid🗝️StringtitleStringdescription❓BooleandoneBooleanarchivedDateTimecreated_atDateTimeupdated_atideasStringid🗝️StringcodeStringtitleStringdescription❓Stringgrill_md❓Stringplan_md❓IdeaStatusstatusBooleanarchivedDateTimecreated_atDateTimeupdated_atidea_logsStringid🗝️IdeaLogTypetypeStringcontentJsonmetadata❓DateTimecreated_atlogin_pairingsStringid🗝️Stringsecret_hashStringdesktop_token_hashStringstatusStringdesktop_ua❓Stringdesktop_ip❓DateTimecreated_atDateTimeexpires_atDateTimeapproved_at❓DateTimeconsumed_at❓claude_questionsStringid🗝️StringquestionJsonoptions❓StringstatusStringanswer❓DateTimeanswered_at❓DateTimecreated_atDateTimeexpires_at \ No newline at end of file
active_product
user
enum:role
product
enum:status
pbi
sprint
assignee
story
enum:type
enum:verify_required
task
idea
enum:kind
claimed_by_token
enum:verify_result
token
asker
answerer
Role
PRODUCT_OWNER
SCRUM_MASTER
DEVELOPER
StoryStatus
OPEN
IN_SPRINT
DONE
PbiStatus
READY
BLOCKED
ClaudeJobStatus
QUEUED
CLAIMED
RUNNING
FAILED
CANCELLED
VerifyResult
ALIGNED
PARTIAL
EMPTY
DIVERGENT
VerifyRequired
ALIGNED_OR_PARTIAL
ANY
TaskStatus
TO_DO
IN_PROGRESS
REVIEW
LogType
IMPLEMENTATION_PLAN
TEST_RESULT
COMMIT
TestStatus
PASSED
SprintStatus
ACTIVE
COMPLETED
IdeaStatus
DRAFT
GRILLING
GRILL_FAILED
GRILLED
PLANNING
PLAN_FAILED
PLAN_READY
PLANNED
ClaudeJobKind
TASK_IMPLEMENTATION
IDEA_GRILL
IDEA_MAKE_PLAN
IdeaLogType
DECISION
NOTE
GRILL_RESULT
PLAN_RESULT
STATUS_CHANGE
JOB_EVENT
users
String
id
🗝️
username
email
❓
password_hash
Boolean
is_demo
bio
bio_detail
Bytes
avatar_data
Int
idea_code_counter
DateTime
created_at
updated_at
user_roles
role
api_tokens
token_hash
label
revoked_at
products
name
code
description
repo_url
definition_of_done
auto_pr
archived
pbis
title
priority
Float
sort_order
status
pr_url
pr_merged_at
stories
acceptance_criteria
story_logs
type
content
commit_hash
commit_message
Json
metadata
sprints
sprint_goal
start_date
end_date
completed_at
tasks
implementation_plan
verify_only
verify_required
claude_jobs
kind
claimed_at
started_at
finished_at
pushed_at
verify_result
plan_snapshot
branch
summary
error
retry_count
claude_workers
product_id
last_seen_at
product_members
todos
done
ideas
grill_md
plan_md
idea_logs
login_pairings
secret_hash
desktop_token_hash
desktop_ua
desktop_ip
expires_at
approved_at
consumed_at
claude_questions
question
options
answer
answered_at