finals generation added

This commit is contained in:
2026-03-08 18:12:03 +11:00
parent 26ee81964d
commit 1cab39a4f7
13 changed files with 1916 additions and 51 deletions

View File

@@ -0,0 +1,98 @@
package migrations
import (
"context"
"git.haelnorr.com/h/oslstats/internal/db"
"github.com/uptrace/bun"
)
func init() {
Migrations.MustRegister(
// UP migration
func(ctx context.Context, conn *bun.DB) error {
// Create playoff_brackets table
_, err := conn.NewCreateTable().
Model((*db.PlayoffBracket)(nil)).
IfNotExists().
Exec(ctx)
if err != nil {
return err
}
// Create playoff_series table
_, err = conn.NewCreateTable().
Model((*db.PlayoffSeries)(nil)).
IfNotExists().
Exec(ctx)
if err != nil {
return err
}
// Create playoff_matches table
_, err = conn.NewCreateTable().
Model((*db.PlayoffMatch)(nil)).
IfNotExists().
Exec(ctx)
if err != nil {
return err
}
// Add foreign key for winner_next_series_id
_, err = conn.NewRaw(`
ALTER TABLE playoff_series
ADD CONSTRAINT fk_winner_next_series
FOREIGN KEY (winner_next_series_id) REFERENCES playoff_series(id)
ON DELETE SET NULL
`).Exec(ctx)
if err != nil {
return err
}
// Add foreign key for loser_next_series_id
_, err = conn.NewRaw(`
ALTER TABLE playoff_series
ADD CONSTRAINT fk_loser_next_series
FOREIGN KEY (loser_next_series_id) REFERENCES playoff_series(id)
ON DELETE SET NULL
`).Exec(ctx)
if err != nil {
return err
}
return nil
},
// DOWN migration
func(ctx context.Context, conn *bun.DB) error {
// Drop tables in reverse order (respecting foreign keys)
_, err := conn.NewDropTable().
Model((*db.PlayoffMatch)(nil)).
IfExists().
Cascade().
Exec(ctx)
if err != nil {
return err
}
_, err = conn.NewDropTable().
Model((*db.PlayoffSeries)(nil)).
IfExists().
Cascade().
Exec(ctx)
if err != nil {
return err
}
_, err = conn.NewDropTable().
Model((*db.PlayoffBracket)(nil)).
IfExists().
Cascade().
Exec(ctx)
if err != nil {
return err
}
return nil
},
)
}