USE cashless_db;

INSERT INTO roles (name, description) VALUES
  ('cashier','Review and approve or reject submitted customer GCash receipts')
ON DUPLICATE KEY UPDATE description=VALUES(description);

SET @cashless_demo_column_exists = (
  SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
  WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='users' AND COLUMN_NAME='is_demo'
);
SET @cashless_demo_column_sql = IF(
  @cashless_demo_column_exists=0,
  'ALTER TABLE users ADD COLUMN is_demo TINYINT(1) NOT NULL DEFAULT 0 AFTER status',
  'SELECT 1'
);
PREPARE cashless_demo_column_statement FROM @cashless_demo_column_sql;
EXECUTE cashless_demo_column_statement;
DEALLOCATE PREPARE cashless_demo_column_statement;

UPDATE users u
JOIN roles r ON r.id=u.role_id
SET u.is_demo=1
WHERE (u.username='demo.admin' AND r.name='admin')
   OR (u.username='demo.cashier' AND r.name='cashier')
   OR (u.username='demo.customer' AND r.name='customer');
