2.5 KiB
2.5 KiB
Shot Naming Conventions
Shot Code Format
Shot codes are auto-generated on creation and are read-only after that point.
Standard Job
{SHOW_ID}_{SCENE}_{SHOT_NUMBER}
Example: PRJX_SC010_0010
Episodic Job
{SHOW_ID}_{EPISODE}_{SCENE}_{SHOT_NUMBER}
Example: PRJX_EP01_SC010_0010
Segments
| Segment | Source | Notes |
|---|---|---|
SHOW_ID |
Job.showId |
1–10 chars, letters/numbers/underscores, stored uppercase. Set once on the job. |
EPISODE |
Shot.episode |
Only present on EPISODIC jobs. Free-text, stored uppercase (e.g. EP01). |
SCENE |
Shot.scene |
Required on every shot. Stored uppercase (e.g. SC010). |
SHOT_NUMBER |
Auto-incremented | 4-digit zero-padded integer, increments by 10 (e.g. 0010, 0020). |
Auto-Incrementing Shot Numbers
The shot number is scoped to the scene within a job (and additionally to the episode for episodic jobs):
- On create, the system queries
MAX(shotNumber)for all shots sharing the samejobId + scene(+episodefor episodic). - The new shot number =
MAX + 10, starting at0010when no prior shots exist in that scene. - The number is zero-padded to 4 digits.
This means shot numbers are non-contiguous by design — gaps allow shots to be inserted between existing ones without renumbering.
When a shot is duplicated, it inherits the scene/episode of the original and receives the next available shot number in that scope. Only the trailing 4-digit segment in the code is replaced; the rest of the code is preserved.
Where Fields Come From
| Field | Model | Required? |
|---|---|---|
showId |
Job |
Yes — validated 1–10 chars, [A-Z0-9_] |
projectCode |
Job |
Yes — unique across all jobs, used for billing/reference (not in shot code) |
jobType |
Job |
Yes — STANDARD or EPISODIC; controls whether episode segment is included |
scene |
Shot |
Yes — required by shotSchema |
episode |
Shot |
Optional — only meaningful (and included in code) when jobType === EPISODIC |
shotGroup |
Shot |
Optional — organisational grouping only, not part of the shot code |
Notes
projectCodeis a separate billing/admin identifier on the Job and does not appear in shot codes. Shot codes useshowIdinstead.- Shot codes are not regenerated on edit — if scene or episode values change after creation, the stored
shotCodewill not reflect those changes. - All string segments are uppercased before being written into the code.