3.2 KiB
3.2 KiB
Data Model: Sequence Numbering Command
SequenceRequest
- Fields
Path(string): Root path for traversal (defaults to current directory); must exist and be accessible.Recursive(bool): Includes subdirectories when true.IncludeDirs(bool): Includes directories in traversal results without numbering.Hidden(bool): Includes hidden files when true.Extensions([]string): Optional.-prefixed extension filter; deduplicated and validated.DryRun(bool): Indicates preview-only execution.Yes(bool): Confirmation flag for apply mode.Start(int): First sequence value; must be ≥1.Width(int): Minimum digits for zero padding; must be ≥1 when provided.Placement(enum:prefix|suffix): Determines where the sequence number is inserted; defaultsuffix.Separator(string): Separator between number and filename; defaults to_; must comply with filesystem rules (no path separators, non-empty).
- Relationships: Consumed by traversal service to produce candidates and by sequence rule to generate
SequencePlan. - Validations: Numeric fields validated before preview; separator sanitized; conflicting flags (dry-run vs yes) rejected.
SequencePlan
- Fields
Candidates([]SequenceCandidate): Ordered list of files considered for numbering.SkippedConflicts([]SequenceConflict): Files skipped due to target path collisions.Summary(SequenceSummary): Counts for total candidates, renamed files, and skipped items.Config(SequenceConfig): Snapshot of sequence settings (start, width, placement, separator).
- Relationships: Passed to output package for preview rendering and to history package for ledger persistence.
- Validations: Candidate ordering must match traversal ordering; conflicts identified before apply.
SequenceCandidate
- Fields
OriginalPath(string)ProposedPath(string)Index(int): Zero-based position used to derive padded number.
- Constraints: Proposed path must differ from original to be considered a rename; duplicates flagged as conflicts.
SequenceConflict
- Fields
OriginalPath(string)ConflictingPath(string)Reason(string enum:existing_target,invalid_separator,width_overflow)
SequenceSummary
- Fields
TotalCandidates(int)RenamedCount(int)SkippedCount(int)Warnings([]string)
SequenceLedgerEntry
- Fields
Timestamp(time.Time)Rule(string): Fixed valuesequence.Config(SequenceConfig): Stored to support undo.Operations([]SequenceOperation): Each capturesFromandTopaths actually renamed.
- Relationships: Append-only entry written by history package; consumed by undo command.
- Validations: Only include successful renames (skipped conflicts omitted). Undo must verify files still exist before attempting reversal.
SequenceOperation
- Fields
From(string)To(string)
SequenceConfig
- Fields
Start(int)Width(int)Placement(string)Separator(string)
- Usage: Embedded in plan summaries, ledger entries, and undo operations to ensure consistent behavior across preview and apply.