次のCSVデータから、業務用Web+DBアプリ画面を作成してください。

前提条件:

CSVファイルの1行目にはフィールド名が入っています。
2行目以降には実データが入っています。
CSVのフィールド名、データ内容、値の傾向をもとに、業務内容、項目の意味、データ型、入力画面、一覧画面、検索画面に適した構成を推定してください。

要件:

CSVの1行目のフィールド名を解析してください。
各フィールドについて以下を推定してください。

ラベル名
SQLカラム名
データ型
入力部品種別
一覧表示に適した項目か
検索対象に適した項目か
必須項目候補か
主キー候補か
選択リスト候補か
表示専用候補か

入力部品種別は以下から選択してください。

入力テキストボックス
テキストエリア
チェックボックス
選択リスト
ラジオボタン
通常ボタン
一覧テーブル
表示専用フィールド
日付入力
数値入力
金額入力
メール入力
電話番号入力

CSVのフィールド名から、SQLフィールド名を自動生成してください。
SQLフィールド名は英小文字のスネークケースとし、日本語フィールド名を意味の近い英語またはローマ字に変換してください。
既に英数字のフィールド名の場合も、SQLiteで扱いやすい英小文字のスネークケースに整形してください。
空白、記号、括弧、単位、全角記号などは適切に除去または変換してください。

CSVデータの値から、SQLite用のデータ型を推定してください。

推定する主なデータ型は以下です。

TEXT
INTEGER
REAL
NUMERIC

日付、日時と思われる項目は TEXT としてください。
電話番号、郵便番号、コード、会員番号、商品番号、顧客番号など、数字だけでも先頭ゼロや桁数保持が重要な項目は TEXT としてください。
金額、数量、単価、率、スコア、件数など数値演算に使う可能性が高い項目は INTEGER、REAL、NUMERIC のいずれか適切な型にしてください。
判断が難しい場合は TEXT としてください。

HTMLファイル名は以下とする
*****FileName*****

SQLテーブル名は以下とする
*****TableName*****

CSVデータをもとに、業務用Webアプリの入力・編集画面をHTMLで作成してください。
必要に応じてCSSも作成してください。
CSSはHTML内部に記述し、別ファイルにしないでください。

HTMLは、CSVの各フィールドを入力・編集できる業務画面として作成してください。
入力テキストボックス、テキストエリア、選択リスト、日付入力、数値入力などの初期値は
<#フィールド名> の形式にしてください。
ここでの <#フィールド名> は、生成したSQLフィールド名を使用してください。

例:
<input type="text" name="project_name" value="<#project_name>">

選択リストに適している項目は、CSVデータ内の値の種類が少ない場合に推定してください。
例:
ステータス
区分
種別
分類
担当者
部署
都道府県
有無
フラグ

チェックボックスに適している項目は、CSVデータ内の値が以下のような二値の場合に推定してください。
例:
1/0
true/false
yes/no
有/無
あり/なし
済/未
ON/OFF

テキストエリアに適している項目は、備考、説明、詳細、内容、メモ、コメントなど長文になりやすい項目としてください。

一覧テーブルには、主要なカラムを選んで表示してください。
すべてのカラムを無理に一覧表示しなくても構いません。
ただし、業務上の識別に重要と思われる項目は優先して表示してください。

検索フォームが必要な場合は、主要項目を検索できるようにしてください。
検索対象には、名称、氏名、会社名、商品名、案件名、ステータス、日付、コード、担当者などを優先してください。

以下のHTMLテンプレートに可能な限り従って生成してください。
class名、id名、ブロック構造を優先して維持してください。
不足部分のみ補完してください。
CSSはHTML内部に記述、別ファイルにしないでください。

HTML内のコメント指示に従ってください。

既に存在する以下要素は極力削除や変更しないでください。

ボタン
フォーム
hidden input
JavaScript
外枠のdiv
既存のclass名
既存のid名
既存のテンプレート変数
既存の送信先
既存のAction指定

HTMLソース内のHTMLファイル名、テーブル名は変更しないでください。
例:
wdb_item
item.html
itemlist.html

テンプレート内に既存のサンプル項目がある場合は、CSVから生成したSQLカラム名に置き換えてください。

例:
ItemNo を project_no に変更
ItemName を project_name に変更
CustomerName を customer_name に変更

作成したSQLのカラム名と、HTML内の name 属性、id 属性、<#フィールド名> は可能な限り一致させてください。

SQLテーブル定義を作成してください。

最初の3カラムは必ず以下を追加してください。

RecID INTEGER PRIMARY KEY AUTOINCREMENT,
AddDate TEXT,
ModDate TEXT,

その後に、CSVの1行目から生成したカラムを追加してください。
各カラムは初期値 NULL 許可としてください。
NOT NULL 制約は原則として付けないでください。
主キーは RecID を使用してください。
CSV内にID、コード、番号など主キー候補が存在する場合でも、RecIDとは別の通常カラムとして作成してください。

SQLは SQLite 用 CREATE TABLE 文で出力してください。
可能であれば、CSVの先頭数行をもとに初期データ INSERT 文も作成してください。
ただし、INSERT文の値はSQLiteで実行可能な形式にしてください。
文字列内のシングルクォートは適切にエスケープしてください。
データ量が多い場合は、代表的な数行のみINSERT文を作成してください。

出力は必ず以下のJSON形式のみとしてください。
説明文、Markdown、コードブロック記号は一切不要です。

{
  "html": "HTML全文。CSSはHTML内部に記述すること。",
  "sql": "SQLite用CREATE TABLE文と初期データINSERT文",
  "field1_caption": "主要なカラム1名前キャプション",
  "field1_name": "主要なカラム1名前SQLフィールド名",
  "field2_caption": "主要なカラム2名前キャプション",
  "field2_name": "主要なカラム2名前SQLフィールド名"
}

JSON内の文字列は正しいJSON文字列としてエスケープしてください。
改行は \n として表現してください。
ダブルクォートは適切にエスケープしてください。

不明な項目は推定で補ってください。
ただし、出力はJSON形式のみとするため、推定内容を説明文としてJSON外に出力しないでください。
推定した内容を残す必要がある場合は、HTML内コメントまたはSQLコメントとして簡潔に明示してください。

[HTML TEMPLATE START]
*****template*****
[HTML TEMPLATE END]