@codervisor/devlog-core
Version:
Core devlog management functionality
76 lines (75 loc) • 3.31 kB
JavaScript
/**
* DevlogDependency entity - separate table for devlog dependencies
* Replaces the context.dependencies[] array in DevlogEntry
* Essential for hierarchical work item management (epic->phase->story)
*/
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
import 'reflect-metadata';
import { Column, Entity, Index, ManyToOne, JoinColumn, PrimaryColumn } from 'typeorm';
import { DevlogEntryEntity } from './devlog-entry.entity.js';
let DevlogDependencyEntity = class DevlogDependencyEntity {
id;
devlogId;
type;
description;
externalId;
// Target devlog ID for internal dependencies (epic->phase->story relationships)
targetDevlogId;
// Foreign key relationship to source devlog
devlogEntry;
// Optional foreign key relationship to target devlog (for internal dependencies)
targetDevlogEntry;
};
__decorate([
PrimaryColumn({ type: 'varchar', length: 255 }),
__metadata("design:type", String)
], DevlogDependencyEntity.prototype, "id", void 0);
__decorate([
Column({ type: 'integer', name: 'devlog_id' }),
__metadata("design:type", Number)
], DevlogDependencyEntity.prototype, "devlogId", void 0);
__decorate([
Column({
type: 'varchar',
length: 50,
enum: ['blocks', 'blocked-by', 'related-to', 'parent-of', 'child-of'],
}),
__metadata("design:type", String)
], DevlogDependencyEntity.prototype, "type", void 0);
__decorate([
Column({ type: 'text' }),
__metadata("design:type", String)
], DevlogDependencyEntity.prototype, "description", void 0);
__decorate([
Column({ type: 'varchar', length: 255, nullable: true, name: 'external_id' }),
__metadata("design:type", String)
], DevlogDependencyEntity.prototype, "externalId", void 0);
__decorate([
Column({ type: 'integer', nullable: true, name: 'target_devlog_id' }),
__metadata("design:type", Number)
], DevlogDependencyEntity.prototype, "targetDevlogId", void 0);
__decorate([
ManyToOne(() => DevlogEntryEntity, { onDelete: 'CASCADE' }),
JoinColumn({ name: 'devlog_id' }),
__metadata("design:type", DevlogEntryEntity)
], DevlogDependencyEntity.prototype, "devlogEntry", void 0);
__decorate([
ManyToOne(() => DevlogEntryEntity, { onDelete: 'SET NULL' }),
JoinColumn({ name: 'target_devlog_id' }),
__metadata("design:type", DevlogEntryEntity)
], DevlogDependencyEntity.prototype, "targetDevlogEntry", void 0);
DevlogDependencyEntity = __decorate([
Entity('devlog_dependencies'),
Index(['devlogId']),
Index(['type']),
Index(['targetDevlogId'])
], DevlogDependencyEntity);
export { DevlogDependencyEntity };