ー開発中ーACTIVE

シリアル番号採番機仕様

うむ。ここで一度、実装に入る前の Serial 仕様スナップショットとして紙にしておこうw
まだ決めていないところは勝手に埋めず、「未確定」にしておく。

Kaia Serial 仕様整理 — 現時点案

1. 製品の位置づけ

Kaia Serial は独立した有料コンポーネント。Free は存在しない。

現状の製品ラインは、

  • Standard — 基本となるSerial発行・管理・公開照合
  • Creative — Standardを包含し、企業向けに取得できる発行情報を拡張

とする。

既存Registry上では、

Parent:KS-0017-CNT-17
Standard:KS-0027-CNT-17

が存在する。

Creativeは新規製品として、Registryの通常ルールに従って新規採番する。既存番号の並べ替えや、Freeの追加は行わない。


2. 基本思想

Serialは単なるランダム文字列生成器ではない。

発行物に固有Serialを与え、発行時のCounter・Timestamp・Binder/Refillとの関係を台帳として保持し、後から公開照合できる「発行管理装置」。

UIについては新規設計を極力避け、

Timestamp Standardの金型へSerial機能を流し込む

ことを基本とする。

表側の操作感はTimestampと兄弟機にする一方、内部にはSerial専用の採番・仮予約・一意性保証・発行台帳を持つ。


3. Serial候補UI

ページ取得時、自動的にSerial候補を1個採番する。

この時点から単なる表示候補ではなく、仮予約済みSerialとして扱う。

その後ユーザーは ROLLを最大5回実行できる。

したがって、

ページ取得
  ↓
Serial #1 自動採番・仮予約

ROLL #1 → Serial #2
ROLL #2 → Serial #3
ROLL #3 → Serial #4
ROLL #4 → Serial #5
ROLL #5 → Serial #6

最大6候補

となる。

候補はTimestampと同様、ラジオボタンで1個を選択する。

初期候補はデフォルト選択状態。

6候補に達したら、それ以上ROLLできない。


4. 仮予約と重複防止

画面へ提示されたSerialはすべて仮予約済み。

したがって別ユーザーへ同じSerialを提示しない。

採番時にはサーバー側で一意性を確認し、仮予約が成立したSerialだけをWebへ返す。

仮予約と正式発行は同じ一意性空間で管理する。

Serial A → temporary
Serial B → temporary
Serial C → issued

temporary のSerialも他者へ再採番しない。

DB側でもSerial全体に対する UNIQUE制約を最終防衛線として持つ。

仮予約の有効期限・失効処理などの具体値は未確定。


5. Serial番号の構造

Serialの先頭には、発行対象となるCounter番号に依存した通し番号部分を持たせる。

概念例:

Counter Number : 152
Serial Number  : 152-H7K2M9

後半部分はSerial固有部分。

ただし、一意性判定はBinder単位・Refill単位ではなく、

Serial Number全体についてGLOBAL UNIQUE

とする。

Binder + Serial の複合一意性にはしない。

BinderやRefillはSerialの一意性を決める住所ではなく、発行後に内部台帳でSerialへ関連付けられる情報。


6. Binder / Refillとの関連

Serialは共通の Refill N によってKaiaファミリーと関連付ける。

内部ではBinder ID / Refill IDを保持する。

ただし公開照合では、

Binder
Refill

という内部用語をそのまま見せる必要はない。

企業・設置者が公開用の項目名と表示名を設定できるようにする。

例:

内部
Binder ID : 7
Refill ID : 12

公開用
Binder項目名 : 開催時期
Binder表示名 : 2026年夏

Refill項目名 : イベント
Refill表示名 : アイドルAライブ記念

公開側では、

開催時期
2026年夏

イベント
アイドルAライブ記念

のように表示できる。

内部構造のBinder / Refillそのものの名称やIDは変更しない。

変更可能なのは公開側の表札。

個人情報・社内管理情報等を公開表示名へ入れないよう、管理画面で注意表示を行う。

発行時の公開表示名については、後日の名称変更で過去発行物の意味が変わらないよう、発行時Snapshotとして保存する方向。


7. 正式発行時に固定する情報

正式発行時には少なくとも以下を、その発行物のSnapshotとして保持する。

Binder ID
Refill ID

Binder 公開項目名
Binder 公開表示名

Refill 公開項目名
Refill 公開表示名

Counter Number

Issued Timestamp

Serial Number

Creative用の詳細情報については後述。

Counter NumberはSerial prefixから後で復元するのではなく、独立した発行時Snapshotとしても保存する。

現在のCounter値を後日参照してはいけない。


8. 公開Serial逆引き

Serialプラグイン自身が、公開サイトへ逆引き窓口を設置できるようにする。

WordPressでは専用ショートコードを用意する方向。

概念:

[kaia_serial_verify]

固定ページ等へ設置すると、

Serial Verification

[ Serial Number               ]
[ Verify ]

という検索UIが生える。

一致する正式発行Serialが存在した場合、公開する基本情報は、

2026年夏
アイドルAライブ記念

Counter Number
152

Issued Timestamp
2026.08.31 14:32:18

Serial Number
152-H7K2M9

とする。

Binder / Refillについては、設定された公開項目名・公開表示名を使用する。


9. 公開しない情報

Timezone情報は公開逆引きには表示しない。

技術的に取得可能であっても、

「なぜこのサイトが自分のTimezoneを知っているのか」

という不要な不安を一般ユーザーへ与えるため。

したがって公開照合は必要最小限。

TZは企業向け内部台帳情報として扱う。


10. 企業向け発行台帳

Serialは正式発行済みデータについて、企業・管理者向け台帳を持つ。

通常の台帳・エクスポートには仮予約Serialを混在させない。

基本的に issued の正式発行記録を対象とする。

デフォルト表示順は、

新しい発行ほど上

とする。

すなわち発行順の降順(DESC)。

#156
#155
#154
...
#2
#1

内部の発行番号そのものは通常通り増加する。


11. 台帳エクスポート

企業向け台帳は少なくとも、

Markdown (.md)
CSV (.csv)
Excel (.xlsx)

の3形式でダウンロード可能にする。

三形式で別の台帳を作るのではなく、同一の発行台帳データを異なる形式で出力する。

デフォルトの並び順も管理画面同様、最新発行が上。


12. Standardの企業向けデータ

Standardでも普通の企業運用に必要な情報は取得できる。

基本イメージ:

Issue No.
Binder ID / 発行時公開表示
Refill ID / 発行時公開表示
Counter Number
Issued Timestamp
Serial Number

つまり、

何の発行物か
Counter何番だったか
いつ発行されたか
どのSerialか

を企業が後から追える。


13. Creativeの企業向け詳細情報

Creativeでは、Standardの台帳を包含したうえで、発行時刻についてより深い情報を取得可能にする。

特に重要なのがTimezone。

発行時には同じ一瞬について、

Visitor Timestamp
Visitor TZ

Company Timestamp
Company TZ

を扱えるようにする。

例:

Visitor Timestamp
2026-08-31 14:32:18

Visitor TZ
Asia/Tokyo

Company Timestamp
2026-08-31 07:32:18

Company TZ
Europe/Berlin

これは別々の発行時刻ではない。

同一の発行瞬間を、利用者側と企業側それぞれの現地時計で表現したもの。

会社側はSerial設定で自社のIANA Timezoneを設定する方向。

Company Timezone
Europe/Berlin

これにより企業は、

「このSerialは利用者の現地では何月何日何時に発行されたか」

だけでなく、

「その瞬間、うちの国・地域では何月何日何時だったか」

も台帳から即座に確認できる。

DST等を考慮するため、単純な固定時差ではなくIANA TZを使用する。

基準となる発行瞬間をUTC等でも内部保持する設計が望ましい。


14. Standard / Creativeの境界思想

安全性をグレード差にしない。

以下のようなSerialの安全機構はStandardから備える。

仮予約 / 重複防止 / GLOBAL UNIQUE / 正式発行の固定 / 安全な逆引き

Creativeとの差は、

企業が台帳から持ち帰れる情報の深さ

で作る。

したがって、

Standard=通常の発行管理に必要な台帳

Creative=国際利用・分析・照合などに使える詳細台帳

という関係。

内部データ構造については、将来Standard→Creativeへ上げても壊れないよう、最初から上位互換を意識する。ただし、Standardで何を内部保存するか/Creativeになった際に過去分まで詳細出力可能にするかは未確定。


15. Timestampとの関係

UIの基本金型はTimestamp Standardを利用する。

対応関係は、

Timestamp
ページ取得 → 時刻候補1
RECORD × 最大5
最大6候補
ラジオ選択

Serial
ページ取得 → Serial仮予約1
ROLL × 最大5
最大6候補
ラジオ選択

となる。

つまり、

顔・操作思想=Timestamp系

心臓=Serial専用採番・予約・台帳エンジン

とする。

SerialはTimestamp内部へ組み込まず、独立プラグインとして作る。


16. PDFとの将来連携

Serialをまず独立機として完成・実機確認する。

その後PDFから差し込み連携する。

基本原則は、

SerialがSerialを決める。PDFは決めない。

PDF側がSerial DBを直接覗いて採番ロジックを再実装しない。

Serial側で確定した値を、PDFが発行データとして受け取って転記する。

Counter / Timestampについても同様に、

Webで確定した値をPDFが書き写す

という事故防止原則を維持する。


17. 現時点で意図的に未確定のもの

まだ勝手に決めないものは残しておく。

Serial文字列の具体的な桁数・文字種・prefix表記
仮予約のTTL
ページ離脱時の仮予約解放方法
一度提示したが未発行だったSerialを将来再利用するか
Standard / Creativeの正確なExport列境界
CreativeのRegistry採番
公開逆引きUIの最終デザイン
Company TZ設定UIの具体形
正式発行をSerial単独試験するときのテスト導線

ここは実装前または実装中に必要になったところから決める。


一行でいうSerial君

Kaia Serialは、Counterに紐づく固有Serialを仮予約・選択・正式発行し、その発行時情報を台帳として保存して、公開照合と企業向けデータ出力を提供する独立発行管理コンポーネント。

しゃむ語ならもっと短い。

Timestamp Standardの金型に、採番機と市役所をぶち込む★

これで一旦、かなり実装に渡せるところまで仕様になったと思うwww
特に今回は**「公開窓口」と「企業がぶっこ抜く台帳」を分離した**のがでかい。

タイムスタンプ製品版仕様Prev

シリアルMVP切りNext

Comment

  1. No comments yet.

  1. No trackbacks yet.

CAPTCHA


PAGE TOP
Table of contents