Skip to content

shared/model の SubjectID 不整合と Subject の ID 重複を解消#9

Merged
kantacky merged 2 commits into
mainfrom
fix/shared-model-inconsistencies
May 10, 2026
Merged

shared/model の SubjectID 不整合と Subject の ID 重複を解消#9
kantacky merged 2 commits into
mainfrom
fix/shared-model-inconsistencies

Conversation

@kantacky

Copy link
Copy Markdown
Member

背景

internal/shared/model/ の構造体定義に 2 つの軽微な不整合があった。Atlas の atlas-provider-gorm 経由で DDL を生成する際に挙動の違いはほぼないものの、Go コードからこれらの型を参照する場合に紛らわしいため、整理する。

  • model.SubjectCommon 埋め込みと本体側 ID uuid.UUID を二重宣言しており、Go のフィールド昇格のシャドウイングに依存していた。両方の GORM タグは完全に一致 (type:uuid;primaryKey;default:uuid_generate_v4())。
  • model.MakeupClass.SubjectID のみ string 型で gorm:\"type:uuid\" タグ付き。CancelledClass.SubjectID / RoomChange.SubjectIDuuid.UUID で揃っており、MakeupClass だけが浮いていた。

変更点

  • internal/shared/model/subject.go: 本体側 ID フィールドを削除し、Common.ID に一本化。
  • internal/shared/model/makeup_class.go: SubjectIDstring から uuid.UUID に変更。gorm:\"type:uuid;not null;index\" タグは維持。

いずれの変更も GORM タグの最終形は変わらないため、Atlas が生成する DDL は不変の想定。

確認

  • go build ./...
  • go vet ./...
  • task migrate:diff で空 diff になること (Docker が必要なためレビュー時に手元で確認をお願いしたい)

🤖 Generated with Claude Code

kantacky and others added 2 commits May 10, 2026 13:56
Subject 構造体は Common (ID/CreatedAt/UpdatedAt) を埋め込みつつ、
本体側にも ID フィールドを宣言しており、Go のフィールド昇格の
シャドウイングで本体側が勝つ前提に依存していた。両者の GORM タグは
完全一致しており、本体側 ID の存在は冗長で読みにくいだけだったため
削除する。Common.ID 経由で同じ主キー定義 (uuid + uuid_generate_v4)
が引き継がれるため、Atlas が生成するスキーマは不変。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
CancelledClass.SubjectID と RoomChange.SubjectID は uuid.UUID 型で
宣言されているのに対し、MakeupClass.SubjectID だけが string 型で
gorm:"type:uuid" タグ付きになっており、SubjectID の Go 表現が不揃い
だった。同じ subjects.id を参照する外部キーとして型を uuid.UUID に
統一する。GORM タグの type:uuid は維持しているため、Atlas が生成
するスキーマは不変。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@kantacky kantacky self-assigned this May 10, 2026
@kantacky kantacky marked this pull request as ready for review May 10, 2026 04:57
@kantacky kantacky requested review from Copilot and masaya-osuga and removed request for Copilot May 10, 2026 04:57
@kantacky kantacky merged commit 9b90927 into main May 10, 2026
4 checks passed
@kantacky kantacky deleted the fix/shared-model-inconsistencies branch May 10, 2026 05:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants