<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--
  ~ Copyright 2016 Red Hat, Inc. and/or its affiliates
  ~ and other contributors as indicated by the @author tags.
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~ http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->

<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">

     <changeSet author="bburke@redhat.com" id="2.3.0">
        <createTable tableName="FEDERATED_USER">
            <column name="ID" type="VARCHAR(255)">
                <constraints nullable="false"/>
            </column>
            <column name="STORAGE_PROVIDER_ID" type="VARCHAR(255)">
            </column>
            <column name="REALM_ID" type="VARCHAR(36)">
                <constraints nullable="false" />
            </column>
        </createTable>
         <addPrimaryKey columnNames="ID" constraintName="CONSTR_FEDERATED_USER" tableName="FEDERATED_USER"/>

         <dropDefaultValue tableName="USER_ENTITY" columnName="TOTP" />
         <dropColumn tableName="USER_ENTITY" columnName="TOTP" />

         <addColumn tableName="IDENTITY_PROVIDER">
             <column name="PROVIDER_DISPLAY_NAME" type="VARCHAR(255)"></column>
         </addColumn>

         <addColumn tableName="COMPONENT">
             <column name="SUB_TYPE" type="VARCHAR(255)"></column>
         </addColumn>

         <customChange class="org.keycloak.connections.jpa.updater.liquibase.custom.ExtractRealmKeysFromRealmTable"/>
         <dropColumn tableName="REALM" columnName="CODE_SECRET" />
         <dropColumn tableName="REALM" columnName="PRIVATE_KEY" />
         <dropColumn tableName="REALM" columnName="PUBLIC_KEY" />
         <dropColumn tableName="REALM" columnName="CERTIFICATE" />

         <addColumn tableName="USER_CONSENT">
             <column name="CREATED_DATE" type="BIGINT"/>
             <column name="LAST_UPDATED_DATE" type="BIGINT"/>
         </addColumn>

     </changeSet>

</databaseChangeLog>