exports.up = (pgm) => { pgm.createTable('trips', { id: { type: 'uuid', primaryKey: true, default: pgm.func('gen_random_uuid()') }, name: { type: 'text', notNull: true }, description: { type: 'text' }, owner_id: { type: 'uuid', notNull: true, references: 'users(id)' }, start_date: { type: 'date' }, end_date: { type: 'date' }, status: { type: 'text', notNull: true, default: 'DRAFT' }, planning_stage: { type: 'text' }, currency: { type: 'text', notNull: true, default: 'EUR' }, version: { type: 'integer', notNull: true, default: 1 }, created_at: { type: 'timestamptz', notNull: true, default: pgm.func('now()') }, updated_at: { type: 'timestamptz', notNull: true, default: pgm.func('now()') }, }); pgm.addConstraint( 'trips', 'trips_status_check', "CHECK (status IN ('DRAFT','PLANNING','BOOKING','UPCOMING','ACTIVE','COMPLETED','ARCHIVED'))", ); pgm.createIndex('trips', 'owner_id'); }; exports.down = (pgm) => { pgm.dropTable('trips'); };