feat(schema): #48 monthly_budget em categories + category_id em achievements
- Migration 018: ADD COLUMN monthly_budget NUMERIC(12,2) em categories - Migration 018: ADD COLUMN category_id INTEGER REFERENCES categories(id) ON DELETE CASCADE em achievements - Remove conquistas hardcoded veleiro_under_500 e health_3months do banco - Reset game state do profile_id=1 - Atualiza CategoryRepository, CategoryInput e Category model para incluir monthly_budget
This commit is contained in:
@@ -59,6 +59,9 @@ var m016 string
|
||||
//go:embed sql/017_user_settings.sql
|
||||
var m017 string
|
||||
|
||||
//go:embed sql/018_dynamic_achievements.sql
|
||||
var m018 string
|
||||
|
||||
func Run(ctx context.Context, pool *pgxpool.Pool) error {
|
||||
// Bootstrap: ensure schema_migrations table exists before checking versions.
|
||||
if _, err := pool.Exec(ctx, `
|
||||
@@ -70,7 +73,7 @@ func Run(ctx context.Context, pool *pgxpool.Pool) error {
|
||||
return fmt.Errorf("bootstrap schema_migrations: %w", err)
|
||||
}
|
||||
|
||||
migrations := []string{m001, m002, m003, m004, m005, m006, m007, m008, m009, m010, m011, m012, m013, m014, m015, m016, m017}
|
||||
migrations := []string{m001, m002, m003, m004, m005, m006, m007, m008, m009, m010, m011, m012, m013, m014, m015, m016, m017, m018}
|
||||
for i, sql := range migrations {
|
||||
version := i + 1
|
||||
var applied bool
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
ALTER TABLE categories ADD COLUMN IF NOT EXISTS monthly_budget NUMERIC(12,2);
|
||||
|
||||
ALTER TABLE achievements ADD COLUMN IF NOT EXISTS category_id INTEGER REFERENCES categories(id) ON DELETE CASCADE;
|
||||
|
||||
-- Remove conquistas hardcoded com categorias específicas
|
||||
DELETE FROM player_achievements WHERE achievement_id IN (
|
||||
SELECT id FROM achievements WHERE unlock_condition IN ('veleiro_under_500', 'health_3months')
|
||||
);
|
||||
DELETE FROM achievements WHERE unlock_condition IN ('veleiro_under_500', 'health_3months');
|
||||
|
||||
-- Reset game state do profile_id=1
|
||||
DELETE FROM player_achievements WHERE profile_id = 1;
|
||||
DELETE FROM xp_events WHERE profile_id = 1;
|
||||
DELETE FROM player_quests WHERE profile_id = 1;
|
||||
UPDATE player_profile SET level = 1, xp = 0, xp_to_next = 100 WHERE profile_id = 1;
|
||||
|
||||
INSERT INTO schema_migrations (version) VALUES (18) ON CONFLICT DO NOTHING;
|
||||
Reference in New Issue
Block a user