<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd">
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-1">
        <createTable tableName="CountryRegionCurrency">
            <column name="CountryRegionCode" remarks="ISO code for countries and regions. Foreign key to CountryRegion.CountryRegionCode." type="nvarchar(3)">
                <constraints nullable="false"/>
            </column>
            <column name="CurrencyCode" remarks="ISO standard currency code. Foreign key to Currency.CurrencyCode." type="nchar(3)">
                <constraints nullable="false"/>
            </column>
            <column defaultValueComputed="getdate()" name="ModifiedDate" remarks="Date and time the record was last updated." type="datetime">
                <constraints nullable="false"/>
            </column>
        </createTable>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-2">
        <createTable tableName="CreditCard">
            <column autoIncrement="true" name="CreditCardID" remarks="Primary key for CreditCard records." type="int">
                <constraints primaryKey="true" primaryKeyName="PK_CreditCard_CreditCardID"/>
            </column>
            <column name="CardType" remarks="Credit card name." type="nvarchar(50)">
                <constraints nullable="false"/>
            </column>
            <column name="CardNumber" remarks="Credit card number." type="nvarchar(25)">
                <constraints nullable="false"/>
            </column>
            <column name="ExpMonth" remarks="Credit card expiration month." type="tinyint">
                <constraints nullable="false"/>
            </column>
            <column name="ExpYear" remarks="Credit card expiration year." type="smallint">
                <constraints nullable="false"/>
            </column>
            <column defaultValueComputed="getdate()" name="ModifiedDate" remarks="Date and time the record was last updated." type="datetime">
                <constraints nullable="false"/>
            </column>
        </createTable>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-3">
        <createTable tableName="Currency">
            <column name="CurrencyCode" remarks="The ISO code for the Currency." type="nchar(3)">
                <constraints nullable="false"/>
            </column>
            <column name="Name" remarks="Currency name." type="Name(50)">
                <constraints nullable="false"/>
            </column>
            <column defaultValueComputed="getdate()" name="ModifiedDate" remarks="Date and time the record was last updated." type="datetime">
                <constraints nullable="false"/>
            </column>
        </createTable>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-4">
        <createTable tableName="CurrencyRate">
            <column autoIncrement="true" name="CurrencyRateID" remarks="Primary key for CurrencyRate records." type="int">
                <constraints primaryKey="true" primaryKeyName="PK_CurrencyRate_CurrencyRateID"/>
            </column>
            <column name="CurrencyRateDate" remarks="Date and time the exchange rate was obtained." type="datetime">
                <constraints nullable="false"/>
            </column>
            <column name="FromCurrencyCode" remarks="Exchange rate was converted from this currency code." type="nchar(3)">
                <constraints nullable="false"/>
            </column>
            <column name="ToCurrencyCode" remarks="Exchange rate was converted to this currency code." type="nchar(3)">
                <constraints nullable="false"/>
            </column>
            <column name="AverageRate" remarks="Average exchange rate for the day." type="money">
                <constraints nullable="false"/>
            </column>
            <column name="EndOfDayRate" remarks="Final exchange rate for the day." type="money">
                <constraints nullable="false"/>
            </column>
            <column defaultValueComputed="getdate()" name="ModifiedDate" remarks="Date and time the record was last updated." type="datetime">
                <constraints nullable="false"/>
            </column>
        </createTable>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-5">
        <createTable tableName="Customer">
            <column autoIncrement="true" name="CustomerID" remarks="Primary key." type="int">
                <constraints primaryKey="true" primaryKeyName="PK_Customer_CustomerID"/>
            </column>
            <column name="PersonID" remarks="Foreign key to Person.BusinessEntityID" type="int"/>
            <column name="StoreID" remarks="Foreign key to Store.BusinessEntityID" type="int"/>
            <column name="TerritoryID" remarks="ID of the territory in which the customer is located. Foreign key to SalesTerritory.SalesTerritoryID." type="int"/>
            <column name="AccountNumber" remarks="Unique number identifying the customer assigned by the accounting system." type="varchar(10)">
                <constraints nullable="false"/>
            </column>
            <column defaultValueComputed="newid()" name="rowguid" remarks="ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample." type="uniqueidentifier">
                <constraints nullable="false"/>
            </column>
            <column defaultValueComputed="getdate()" name="ModifiedDate" remarks="Date and time the record was last updated." type="datetime">
                <constraints nullable="false"/>
            </column>
        </createTable>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-6">
        <createTable tableName="PersonCreditCard">
            <column name="BusinessEntityID" remarks="Business entity identification number. Foreign key to Person.BusinessEntityID." type="int">
                <constraints nullable="false"/>
            </column>
            <column name="CreditCardID" remarks="Credit card identification number. Foreign key to CreditCard.CreditCardID." type="int">
                <constraints nullable="false"/>
            </column>
            <column defaultValueComputed="getdate()" name="ModifiedDate" remarks="Date and time the record was last updated." type="datetime">
                <constraints nullable="false"/>
            </column>
        </createTable>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-7">
        <createTable tableName="SalesOrderDetail">
            <column name="SalesOrderID" remarks="Primary key. Foreign key to SalesOrderHeader.SalesOrderID." type="int">
                <constraints nullable="false"/>
            </column>
            <column autoIncrement="true" name="SalesOrderDetailID" remarks="Primary key. One incremental unique number per product sold." type="int">
                <constraints primaryKey="true" primaryKeyName="PK_SalesOrderDetail_SalesOrderID_SalesOrderDetailID"/>
            </column>
            <column name="CarrierTrackingNumber" remarks="Shipment tracking number supplied by the shipper." type="nvarchar(25)"/>
            <column name="OrderQty" remarks="Quantity ordered per product." type="smallint">
                <constraints nullable="false"/>
            </column>
            <column name="ProductID" remarks="Product sold to customer. Foreign key to Product.ProductID." type="int">
                <constraints nullable="false"/>
            </column>
            <column name="SpecialOfferID" remarks="Promotional code. Foreign key to SpecialOffer.SpecialOfferID." type="int">
                <constraints nullable="false"/>
            </column>
            <column name="UnitPrice" remarks="Selling price of a single product." type="money">
                <constraints nullable="false"/>
            </column>
            <column defaultValueNumeric="0.0" name="UnitPriceDiscount" remarks="Discount amount." type="money">
                <constraints nullable="false"/>
            </column>
            <column name="LineTotal" remarks="Per product subtotal. Computed as UnitPrice * (1 - UnitPriceDiscount) * OrderQty." type="numeric(38, 6)">
                <constraints nullable="false"/>
            </column>
            <column defaultValueComputed="newid()" name="rowguid" remarks="ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample." type="uniqueidentifier">
                <constraints nullable="false"/>
            </column>
            <column defaultValueComputed="getdate()" name="ModifiedDate" remarks="Date and time the record was last updated." type="datetime">
                <constraints nullable="false"/>
            </column>
        </createTable>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-8">
        <createTable tableName="SalesOrderHeader">
            <column autoIncrement="true" name="SalesOrderID" remarks="Primary key." type="int">
                <constraints primaryKey="true" primaryKeyName="PK_SalesOrderHeader_SalesOrderID"/>
            </column>
            <column defaultValueNumeric="0" name="RevisionNumber" remarks="Incremental number to track changes to the sales order over time." type="tinyint">
                <constraints nullable="false"/>
            </column>
            <column defaultValueComputed="getdate()" name="OrderDate" remarks="Dates the sales order was created." type="datetime">
                <constraints nullable="false"/>
            </column>
            <column name="DueDate" remarks="Date the order is due to the customer." type="datetime">
                <constraints nullable="false"/>
            </column>
            <column name="ShipDate" remarks="Date the order was shipped to the customer." type="datetime"/>
            <column defaultValueNumeric="1" name="Status" remarks="Order current status. 1 = In process; 2 = Approved; 3 = Backordered; 4 = Rejected; 5 = Shipped; 6 = Cancelled" type="tinyint">
                <constraints nullable="false"/>
            </column>
            <column defaultValueNumeric="1" name="OnlineOrderFlag" remarks="0 = Order placed by sales person. 1 = Order placed online by customer." type="Flag(1)">
                <constraints nullable="false"/>
            </column>
            <column name="SalesOrderNumber" remarks="Unique sales order identification number." type="nvarchar(25)">
                <constraints nullable="false"/>
            </column>
            <column name="PurchaseOrderNumber" remarks="Customer purchase order number reference." type="OrderNumber(25)"/>
            <column name="AccountNumber" remarks="Financial accounting number reference." type="AccountNumber(15)"/>
            <column name="CustomerID" remarks="Customer identification number. Foreign key to Customer.BusinessEntityID." type="int">
                <constraints nullable="false"/>
            </column>
            <column name="SalesPersonID" remarks="Sales person who created the sales order. Foreign key to SalesPerson.BusinessEntityID." type="int"/>
            <column name="TerritoryID" remarks="Territory in which the sale was made. Foreign key to SalesTerritory.SalesTerritoryID." type="int"/>
            <column name="BillToAddressID" remarks="Customer billing address. Foreign key to Address.AddressID." type="int">
                <constraints nullable="false"/>
            </column>
            <column name="ShipToAddressID" remarks="Customer shipping address. Foreign key to Address.AddressID." type="int">
                <constraints nullable="false"/>
            </column>
            <column name="ShipMethodID" remarks="Shipping method. Foreign key to ShipMethod.ShipMethodID." type="int">
                <constraints nullable="false"/>
            </column>
            <column name="CreditCardID" remarks="Credit card identification number. Foreign key to CreditCard.CreditCardID." type="int"/>
            <column name="CreditCardApprovalCode" remarks="Approval code provided by the credit card company." type="varchar(15)"/>
            <column name="CurrencyRateID" remarks="Currency exchange rate used. Foreign key to CurrencyRate.CurrencyRateID." type="int"/>
            <column defaultValueNumeric="0.00" name="SubTotal" remarks="Sales subtotal. Computed as SUM(SalesOrderDetail.LineTotal)for the appropriate SalesOrderID." type="money">
                <constraints nullable="false"/>
            </column>
            <column defaultValueNumeric="0.00" name="TaxAmt" remarks="Tax amount." type="money">
                <constraints nullable="false"/>
            </column>
            <column defaultValueNumeric="0.00" name="Freight" remarks="Shipping cost." type="money">
                <constraints nullable="false"/>
            </column>
            <column name="TotalDue" remarks="Total due from customer. Computed as Subtotal + TaxAmt + Freight." type="money">
                <constraints nullable="false"/>
            </column>
            <column name="Comment" remarks="Sales representative comments." type="nvarchar(128)"/>
            <column defaultValueComputed="newid()" name="rowguid" remarks="ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample." type="uniqueidentifier">
                <constraints nullable="false"/>
            </column>
            <column defaultValueComputed="getdate()" name="ModifiedDate" remarks="Date and time the record was last updated." type="datetime">
                <constraints nullable="false"/>
            </column>
        </createTable>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-9">
        <createTable tableName="SalesOrderHeaderSalesReason">
            <column name="SalesOrderID" remarks="Primary key. Foreign key to SalesOrderHeader.SalesOrderID." type="int">
                <constraints nullable="false"/>
            </column>
            <column name="SalesReasonID" remarks="Primary key. Foreign key to SalesReason.SalesReasonID." type="int">
                <constraints nullable="false"/>
            </column>
            <column defaultValueComputed="getdate()" name="ModifiedDate" remarks="Date and time the record was last updated." type="datetime">
                <constraints nullable="false"/>
            </column>
        </createTable>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-10">
        <createTable tableName="SalesPerson">
            <column name="BusinessEntityID" remarks="Primary key for SalesPerson records. Foreign key to Employee.BusinessEntityID" type="int">
                <constraints nullable="false"/>
            </column>
            <column name="TerritoryID" remarks="Territory currently assigned to. Foreign key to SalesTerritory.SalesTerritoryID." type="int"/>
            <column name="SalesQuota" remarks="Projected yearly sales." type="money"/>
            <column defaultValueNumeric="0.00" name="Bonus" remarks="Bonus due if quota is met." type="money">
                <constraints nullable="false"/>
            </column>
            <column defaultValueNumeric="0.00" name="CommissionPct" remarks="Commision percent received per sale." type="money">
                <constraints nullable="false"/>
            </column>
            <column defaultValueNumeric="0.00" name="SalesYTD" remarks="Sales total year to date." type="money">
                <constraints nullable="false"/>
            </column>
            <column defaultValueNumeric="0.00" name="SalesLastYear" remarks="Sales total of previous year." type="money">
                <constraints nullable="false"/>
            </column>
            <column defaultValueComputed="newid()" name="rowguid" remarks="ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample." type="uniqueidentifier">
                <constraints nullable="false"/>
            </column>
            <column defaultValueComputed="getdate()" name="ModifiedDate" remarks="Date and time the record was last updated." type="datetime">
                <constraints nullable="false"/>
            </column>
        </createTable>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-11">
        <createTable tableName="SalesPersonQuotaHistory">
            <column name="BusinessEntityID" remarks="Sales person identification number. Foreign key to SalesPerson.BusinessEntityID." type="int">
                <constraints nullable="false"/>
            </column>
            <column name="QuotaDate" remarks="Sales quota date." type="datetime">
                <constraints nullable="false"/>
            </column>
            <column name="SalesQuota" remarks="Sales quota amount." type="money">
                <constraints nullable="false"/>
            </column>
            <column defaultValueComputed="newid()" name="rowguid" remarks="ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample." type="uniqueidentifier">
                <constraints nullable="false"/>
            </column>
            <column defaultValueComputed="getdate()" name="ModifiedDate" remarks="Date and time the record was last updated." type="datetime">
                <constraints nullable="false"/>
            </column>
        </createTable>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-12">
        <createTable tableName="SalesReason">
            <column autoIncrement="true" name="SalesReasonID" remarks="Primary key for SalesReason records." type="int">
                <constraints primaryKey="true" primaryKeyName="PK_SalesReason_SalesReasonID"/>
            </column>
            <column name="Name" remarks="Sales reason description." type="Name(50)">
                <constraints nullable="false"/>
            </column>
            <column name="ReasonType" remarks="Category the sales reason belongs to." type="Name(50)">
                <constraints nullable="false"/>
            </column>
            <column defaultValueComputed="getdate()" name="ModifiedDate" remarks="Date and time the record was last updated." type="datetime">
                <constraints nullable="false"/>
            </column>
        </createTable>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-13">
        <createTable tableName="SalesTaxRate">
            <column autoIncrement="true" name="SalesTaxRateID" remarks="Primary key for SalesTaxRate records." type="int">
                <constraints primaryKey="true" primaryKeyName="PK_SalesTaxRate_SalesTaxRateID"/>
            </column>
            <column name="StateProvinceID" remarks="State, province, or country/region the sales tax applies to." type="int">
                <constraints nullable="false"/>
            </column>
            <column name="TaxType" remarks="1 = Tax applied to retail transactions, 2 = Tax applied to wholesale transactions, 3 = Tax applied to all sales (retail and wholesale) transactions." type="tinyint">
                <constraints nullable="false"/>
            </column>
            <column defaultValueNumeric="0.00" name="TaxRate" remarks="Tax rate amount." type="money">
                <constraints nullable="false"/>
            </column>
            <column name="Name" remarks="Tax rate description." type="Name(50)">
                <constraints nullable="false"/>
            </column>
            <column defaultValueComputed="newid()" name="rowguid" remarks="ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample." type="uniqueidentifier">
                <constraints nullable="false"/>
            </column>
            <column defaultValueComputed="getdate()" name="ModifiedDate" remarks="Date and time the record was last updated." type="datetime">
                <constraints nullable="false"/>
            </column>
        </createTable>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-14">
        <createTable tableName="SalesTerritory">
            <column autoIncrement="true" name="TerritoryID" remarks="Primary key for SalesTerritory records." type="int">
                <constraints primaryKey="true" primaryKeyName="PK_SalesTerritory_TerritoryID"/>
            </column>
            <column name="Name" remarks="Sales territory description" type="Name(50)">
                <constraints nullable="false"/>
            </column>
            <column name="CountryRegionCode" remarks="ISO standard country or region code. Foreign key to CountryRegion.CountryRegionCode." type="nvarchar(3)">
                <constraints nullable="false"/>
            </column>
            <column name="Group" remarks="Geographic area to which the sales territory belong." type="nvarchar(50)">
                <constraints nullable="false"/>
            </column>
            <column defaultValueNumeric="0.00" name="SalesYTD" remarks="Sales in the territory year to date." type="money">
                <constraints nullable="false"/>
            </column>
            <column defaultValueNumeric="0.00" name="SalesLastYear" remarks="Sales in the territory the previous year." type="money">
                <constraints nullable="false"/>
            </column>
            <column defaultValueNumeric="0.00" name="CostYTD" remarks="Business costs in the territory year to date." type="money">
                <constraints nullable="false"/>
            </column>
            <column defaultValueNumeric="0.00" name="CostLastYear" remarks="Business costs in the territory the previous year." type="money">
                <constraints nullable="false"/>
            </column>
            <column defaultValueComputed="newid()" name="rowguid" remarks="ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample." type="uniqueidentifier">
                <constraints nullable="false"/>
            </column>
            <column defaultValueComputed="getdate()" name="ModifiedDate" remarks="Date and time the record was last updated." type="datetime">
                <constraints nullable="false"/>
            </column>
        </createTable>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-15">
        <createTable tableName="SalesTerritoryHistory">
            <column name="BusinessEntityID" remarks="Primary key. The sales rep.  Foreign key to SalesPerson.BusinessEntityID." type="int">
                <constraints nullable="false"/>
            </column>
            <column name="TerritoryID" remarks="Primary key. Territory identification number. Foreign key to SalesTerritory.SalesTerritoryID." type="int">
                <constraints nullable="false"/>
            </column>
            <column name="StartDate" remarks="Primary key. Date the sales representive started work in the territory." type="datetime">
                <constraints nullable="false"/>
            </column>
            <column name="EndDate" remarks="Date the sales representative left work in the territory." type="datetime"/>
            <column defaultValueComputed="newid()" name="rowguid" remarks="ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample." type="uniqueidentifier">
                <constraints nullable="false"/>
            </column>
            <column defaultValueComputed="getdate()" name="ModifiedDate" remarks="Date and time the record was last updated." type="datetime">
                <constraints nullable="false"/>
            </column>
        </createTable>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-16">
        <createTable tableName="ShoppingCartItem">
            <column autoIncrement="true" name="ShoppingCartItemID" remarks="Primary key for ShoppingCartItem records." type="int">
                <constraints primaryKey="true" primaryKeyName="PK_ShoppingCartItem_ShoppingCartItemID"/>
            </column>
            <column name="ShoppingCartID" remarks="Shopping cart identification number." type="nvarchar(50)">
                <constraints nullable="false"/>
            </column>
            <column defaultValueNumeric="1" name="Quantity" remarks="Product quantity ordered." type="int">
                <constraints nullable="false"/>
            </column>
            <column name="ProductID" remarks="Product ordered. Foreign key to Product.ProductID." type="int">
                <constraints nullable="false"/>
            </column>
            <column defaultValueComputed="getdate()" name="DateCreated" remarks="Date the time the record was created." type="datetime">
                <constraints nullable="false"/>
            </column>
            <column defaultValueComputed="getdate()" name="ModifiedDate" remarks="Date and time the record was last updated." type="datetime">
                <constraints nullable="false"/>
            </column>
        </createTable>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-17">
        <createTable tableName="SpecialOffer">
            <column autoIncrement="true" name="SpecialOfferID" remarks="Primary key for SpecialOffer records." type="int">
                <constraints primaryKey="true" primaryKeyName="PK_SpecialOffer_SpecialOfferID"/>
            </column>
            <column name="Description" remarks="Discount description." type="nvarchar(255)">
                <constraints nullable="false"/>
            </column>
            <column defaultValueNumeric="0.00" name="DiscountPct" remarks="Discount precentage." type="money">
                <constraints nullable="false"/>
            </column>
            <column name="Type" remarks="Discount type category." type="nvarchar(50)">
                <constraints nullable="false"/>
            </column>
            <column name="Category" remarks="Group the discount applies to such as Reseller or Customer." type="nvarchar(50)">
                <constraints nullable="false"/>
            </column>
            <column name="StartDate" remarks="Discount start date." type="datetime">
                <constraints nullable="false"/>
            </column>
            <column name="EndDate" remarks="Discount end date." type="datetime">
                <constraints nullable="false"/>
            </column>
            <column defaultValueNumeric="0" name="MinQty" remarks="Minimum discount percent allowed." type="int">
                <constraints nullable="false"/>
            </column>
            <column name="MaxQty" remarks="Maximum discount percent allowed." type="int"/>
            <column defaultValueComputed="newid()" name="rowguid" remarks="ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample." type="uniqueidentifier">
                <constraints nullable="false"/>
            </column>
            <column defaultValueComputed="getdate()" name="ModifiedDate" remarks="Date and time the record was last updated." type="datetime">
                <constraints nullable="false"/>
            </column>
        </createTable>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-18">
        <createTable tableName="SpecialOfferProduct">
            <column name="SpecialOfferID" remarks="Primary key for SpecialOfferProduct records." type="int">
                <constraints nullable="false"/>
            </column>
            <column name="ProductID" remarks="Product identification number. Foreign key to Product.ProductID." type="int">
                <constraints nullable="false"/>
            </column>
            <column defaultValueComputed="newid()" name="rowguid" remarks="ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample." type="uniqueidentifier">
                <constraints nullable="false"/>
            </column>
            <column defaultValueComputed="getdate()" name="ModifiedDate" remarks="Date and time the record was last updated." type="datetime">
                <constraints nullable="false"/>
            </column>
        </createTable>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-19">
        <createTable tableName="Store">
            <column name="BusinessEntityID" remarks="Primary key. Foreign key to Customer.BusinessEntityID." type="int">
                <constraints nullable="false"/>
            </column>
            <column name="Name" remarks="Name of the store." type="Name(50)">
                <constraints nullable="false"/>
            </column>
            <column name="SalesPersonID" remarks="ID of the sales person assigned to the customer. Foreign key to SalesPerson.BusinessEntityID." type="int"/>
            <column name="Demographics" remarks="Demographic informationg about the store such as the number of employees, annual sales and store type." type="xml(2147483647)"/>
            <column defaultValueComputed="newid()" name="rowguid" remarks="ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample." type="uniqueidentifier">
                <constraints nullable="false"/>
            </column>
            <column defaultValueComputed="getdate()" name="ModifiedDate" remarks="Date and time the record was last updated." type="datetime">
                <constraints nullable="false"/>
            </column>
        </createTable>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-20">
        <addColumn tableName="Employee">
            <column name="BusinessEntityID" remarks="Primary key for Employee records.  Foreign key to BusinessEntity.BusinessEntityID." type="int(10)">
                <constraints nullable="false"/>
            </column>
        </addColumn>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-21">
        <addColumn tableName="Address">
            <column name="AddressID" remarks="Primary key for Address records." type="int identity(10)">
                <constraints nullable="false"/>
            </column>
        </addColumn>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-22">
        <addColumn tableName="BusinessEntity">
            <column name="BusinessEntityID" remarks="Primary key for all customers, vendors, and employees." type="int identity(10)">
                <constraints nullable="false"/>
            </column>
        </addColumn>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-23">
        <addColumn tableName="Person">
            <column name="BusinessEntityID" remarks="Primary key for Person records." type="int(10)">
                <constraints nullable="false"/>
            </column>
        </addColumn>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-24">
        <addColumn tableName="CountryRegion">
            <column name="CountryRegionCode" remarks="ISO standard code for countries and regions." type="nvarchar(3)">
                <constraints nullable="false"/>
            </column>
        </addColumn>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-25">
        <addColumn tableName="StateProvince">
            <column name="StateProvinceID" remarks="Primary key for StateProvince records." type="int identity(10)">
                <constraints nullable="false"/>
            </column>
        </addColumn>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-26">
        <addColumn tableName="Product">
            <column name="ProductID" remarks="Primary key for Product records." type="int identity(10)">
                <constraints nullable="false"/>
            </column>
        </addColumn>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-27">
        <addColumn tableName="ShipMethod">
            <column name="ShipMethodID" remarks="Primary key for ShipMethod records." type="int identity(10)">
                <constraints nullable="false"/>
            </column>
        </addColumn>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-28">
        <addPrimaryKey columnNames="CountryRegionCode, CurrencyCode" constraintName="PK_CountryRegionCurrency_CountryRegionCode_CurrencyCode" tableName="CountryRegionCurrency"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-29">
        <addPrimaryKey columnNames="CurrencyCode" constraintName="PK_Currency_CurrencyCode" tableName="Currency"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-30">
        <addPrimaryKey columnNames="BusinessEntityID, CreditCardID" constraintName="PK_PersonCreditCard_BusinessEntityID_CreditCardID" tableName="PersonCreditCard"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-31">
        <addPrimaryKey columnNames="SalesOrderID, SalesReasonID" constraintName="PK_SalesOrderHeaderSalesReason_SalesOrderID_SalesReasonID" tableName="SalesOrderHeaderSalesReason"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-32">
        <addPrimaryKey columnNames="BusinessEntityID, QuotaDate" constraintName="PK_SalesPersonQuotaHistory_BusinessEntityID_QuotaDate" tableName="SalesPersonQuotaHistory"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-33">
        <addPrimaryKey columnNames="BusinessEntityID" constraintName="PK_SalesPerson_BusinessEntityID" tableName="SalesPerson"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-34">
        <addPrimaryKey columnNames="BusinessEntityID, StartDate, TerritoryID" constraintName="PK_SalesTerritoryHistory_BusinessEntityID_StartDate_TerritoryID" tableName="SalesTerritoryHistory"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-35">
        <addPrimaryKey columnNames="SpecialOfferID, ProductID" constraintName="PK_SpecialOfferProduct_SpecialOfferID_ProductID" tableName="SpecialOfferProduct"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-36">
        <addPrimaryKey columnNames="BusinessEntityID" constraintName="PK_Store_BusinessEntityID" tableName="Store"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-37">
        <createIndex indexName="AK_CreditCard_CardNumber" tableName="CreditCard" unique="true">
            <column name="CardNumber"/>
        </createIndex>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-38">
        <createIndex indexName="AK_CurrencyRate_CurrencyRateDate_FromCurrencyCode_ToCurrencyCode" tableName="CurrencyRate" unique="true">
            <column name="CurrencyRateDate"/>
            <column name="FromCurrencyCode"/>
            <column name="ToCurrencyCode"/>
        </createIndex>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-39">
        <createIndex indexName="AK_Currency_Name" tableName="Currency" unique="true">
            <column name="Name"/>
        </createIndex>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-40">
        <createIndex indexName="AK_Customer_AccountNumber" tableName="Customer" unique="true">
            <column name="AccountNumber"/>
        </createIndex>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-41">
        <createIndex indexName="AK_Customer_rowguid" tableName="Customer" unique="true">
            <column name="rowguid"/>
        </createIndex>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-42">
        <createIndex indexName="AK_SalesOrderDetail_rowguid" tableName="SalesOrderDetail" unique="true">
            <column name="rowguid"/>
        </createIndex>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-43">
        <createIndex indexName="AK_SalesOrderHeader_SalesOrderNumber" tableName="SalesOrderHeader" unique="true">
            <column name="SalesOrderNumber"/>
        </createIndex>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-44">
        <createIndex indexName="AK_SalesOrderHeader_rowguid" tableName="SalesOrderHeader" unique="true">
            <column name="rowguid"/>
        </createIndex>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-45">
        <createIndex indexName="AK_SalesPersonQuotaHistory_rowguid" tableName="SalesPersonQuotaHistory" unique="true">
            <column name="rowguid"/>
        </createIndex>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-46">
        <createIndex indexName="AK_SalesPerson_rowguid" tableName="SalesPerson" unique="true">
            <column name="rowguid"/>
        </createIndex>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-47">
        <createIndex indexName="AK_SalesTaxRate_StateProvinceID_TaxType" tableName="SalesTaxRate" unique="true">
            <column name="StateProvinceID"/>
            <column name="TaxType"/>
        </createIndex>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-48">
        <createIndex indexName="AK_SalesTaxRate_rowguid" tableName="SalesTaxRate" unique="true">
            <column name="rowguid"/>
        </createIndex>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-49">
        <createIndex indexName="AK_SalesTerritoryHistory_rowguid" tableName="SalesTerritoryHistory" unique="true">
            <column name="rowguid"/>
        </createIndex>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-50">
        <createIndex indexName="AK_SalesTerritory_Name" tableName="SalesTerritory" unique="true">
            <column name="Name"/>
        </createIndex>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-51">
        <createIndex indexName="AK_SalesTerritory_rowguid" tableName="SalesTerritory" unique="true">
            <column name="rowguid"/>
        </createIndex>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-52">
        <createIndex indexName="AK_SpecialOfferProduct_rowguid" tableName="SpecialOfferProduct" unique="true">
            <column name="rowguid"/>
        </createIndex>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-53">
        <createIndex indexName="AK_SpecialOffer_rowguid" tableName="SpecialOffer" unique="true">
            <column name="rowguid"/>
        </createIndex>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-54">
        <createIndex indexName="AK_Store_rowguid" tableName="Store" unique="true">
            <column name="rowguid"/>
        </createIndex>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-55">
        <createIndex indexName="IX_CountryRegionCurrency_CurrencyCode" tableName="CountryRegionCurrency">
            <column name="CurrencyCode"/>
        </createIndex>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-56">
        <createIndex indexName="IX_Customer_TerritoryID" tableName="Customer">
            <column name="TerritoryID"/>
        </createIndex>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-57">
        <createIndex indexName="IX_SalesOrderDetail_ProductID" tableName="SalesOrderDetail">
            <column name="ProductID"/>
        </createIndex>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-58">
        <createIndex indexName="IX_SalesOrderHeader_CustomerID" tableName="SalesOrderHeader">
            <column name="CustomerID"/>
        </createIndex>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-59">
        <createIndex indexName="IX_SalesOrderHeader_SalesPersonID" tableName="SalesOrderHeader">
            <column name="SalesPersonID"/>
        </createIndex>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-60">
        <createIndex indexName="IX_ShoppingCartItem_ShoppingCartID_ProductID" tableName="ShoppingCartItem">
            <column name="ShoppingCartID"/>
            <column name="ProductID"/>
        </createIndex>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-61">
        <createIndex indexName="IX_SpecialOfferProduct_ProductID" tableName="SpecialOfferProduct">
            <column name="ProductID"/>
        </createIndex>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-62">
        <createIndex indexName="IX_Store_SalesPersonID" tableName="Store">
            <column name="SalesPersonID"/>
        </createIndex>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-63">
        <addForeignKeyConstraint baseColumnNames="CountryRegionCode" baseTableName="CountryRegionCurrency" constraintName="FK_CountryRegionCurrency_CountryRegion_CountryRegionCode" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="CountryRegionCode" referencedTableName="CountryRegion" referencedTableSchemaName="PERSON"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-64">
        <addForeignKeyConstraint baseColumnNames="CurrencyCode" baseTableName="CountryRegionCurrency" constraintName="FK_CountryRegionCurrency_Currency_CurrencyCode" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="CurrencyCode" referencedTableName="Currency"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-65">
        <addForeignKeyConstraint baseColumnNames="FromCurrencyCode" baseTableName="CurrencyRate" constraintName="FK_CurrencyRate_Currency_FromCurrencyCode" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="CurrencyCode" referencedTableName="Currency"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-66">
        <addForeignKeyConstraint baseColumnNames="ToCurrencyCode" baseTableName="CurrencyRate" constraintName="FK_CurrencyRate_Currency_ToCurrencyCode" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="CurrencyCode" referencedTableName="Currency"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-67">
        <addForeignKeyConstraint baseColumnNames="PersonID" baseTableName="Customer" constraintName="FK_Customer_Person_PersonID" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="BusinessEntityID" referencedTableName="Person" referencedTableSchemaName="PERSON"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-68">
        <addForeignKeyConstraint baseColumnNames="TerritoryID" baseTableName="Customer" constraintName="FK_Customer_SalesTerritory_TerritoryID" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="TerritoryID" referencedTableName="SalesTerritory"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-69">
        <addForeignKeyConstraint baseColumnNames="StoreID" baseTableName="Customer" constraintName="FK_Customer_Store_StoreID" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="BusinessEntityID" referencedTableName="Store"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-70">
        <addForeignKeyConstraint baseColumnNames="CreditCardID" baseTableName="PersonCreditCard" constraintName="FK_PersonCreditCard_CreditCard_CreditCardID" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="CreditCardID" referencedTableName="CreditCard"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-71">
        <addForeignKeyConstraint baseColumnNames="BusinessEntityID" baseTableName="PersonCreditCard" constraintName="FK_PersonCreditCard_Person_BusinessEntityID" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="BusinessEntityID" referencedTableName="Person" referencedTableSchemaName="PERSON"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-72">
        <addForeignKeyConstraint baseColumnNames="SalesOrderID" baseTableName="SalesOrderDetail" constraintName="FK_SalesOrderDetail_SalesOrderHeader_SalesOrderID" deferrable="false" initiallyDeferred="false" onDelete="CASCADE" onUpdate="NO ACTION" referencedColumnNames="SalesOrderID" referencedTableName="SalesOrderHeader"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-73">
        <addForeignKeyConstraint baseColumnNames="SpecialOfferID,ProductID" baseTableName="SalesOrderDetail" constraintName="FK_SalesOrderDetail_SpecialOfferProduct_SpecialOfferIDProductID" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="SpecialOfferID,ProductID" referencedTableName="SpecialOfferProduct"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-74">
        <addForeignKeyConstraint baseColumnNames="SalesOrderID" baseTableName="SalesOrderHeaderSalesReason" constraintName="FK_SalesOrderHeaderSalesReason_SalesOrderHeader_SalesOrderID" deferrable="false" initiallyDeferred="false" onDelete="CASCADE" onUpdate="NO ACTION" referencedColumnNames="SalesOrderID" referencedTableName="SalesOrderHeader"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-75">
        <addForeignKeyConstraint baseColumnNames="SalesReasonID" baseTableName="SalesOrderHeaderSalesReason" constraintName="FK_SalesOrderHeaderSalesReason_SalesReason_SalesReasonID" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="SalesReasonID" referencedTableName="SalesReason"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-76">
        <addForeignKeyConstraint baseColumnNames="BillToAddressID" baseTableName="SalesOrderHeader" constraintName="FK_SalesOrderHeader_Address_BillToAddressID" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="AddressID" referencedTableName="Address" referencedTableSchemaName="PERSON"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-77">
        <addForeignKeyConstraint baseColumnNames="ShipToAddressID" baseTableName="SalesOrderHeader" constraintName="FK_SalesOrderHeader_Address_ShipToAddressID" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="AddressID" referencedTableName="Address" referencedTableSchemaName="PERSON"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-78">
        <addForeignKeyConstraint baseColumnNames="CreditCardID" baseTableName="SalesOrderHeader" constraintName="FK_SalesOrderHeader_CreditCard_CreditCardID" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="CreditCardID" referencedTableName="CreditCard"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-79">
        <addForeignKeyConstraint baseColumnNames="CurrencyRateID" baseTableName="SalesOrderHeader" constraintName="FK_SalesOrderHeader_CurrencyRate_CurrencyRateID" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="CurrencyRateID" referencedTableName="CurrencyRate"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-80">
        <addForeignKeyConstraint baseColumnNames="CustomerID" baseTableName="SalesOrderHeader" constraintName="FK_SalesOrderHeader_Customer_CustomerID" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="CustomerID" referencedTableName="Customer"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-81">
        <addForeignKeyConstraint baseColumnNames="SalesPersonID" baseTableName="SalesOrderHeader" constraintName="FK_SalesOrderHeader_SalesPerson_SalesPersonID" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="BusinessEntityID" referencedTableName="SalesPerson"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-82">
        <addForeignKeyConstraint baseColumnNames="TerritoryID" baseTableName="SalesOrderHeader" constraintName="FK_SalesOrderHeader_SalesTerritory_TerritoryID" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="TerritoryID" referencedTableName="SalesTerritory"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-83">
        <addForeignKeyConstraint baseColumnNames="ShipMethodID" baseTableName="SalesOrderHeader" constraintName="FK_SalesOrderHeader_ShipMethod_ShipMethodID" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="ShipMethodID" referencedTableName="ShipMethod" referencedTableSchemaName="PURCHASING"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-84">
        <addForeignKeyConstraint baseColumnNames="BusinessEntityID" baseTableName="SalesPersonQuotaHistory" constraintName="FK_SalesPersonQuotaHistory_SalesPerson_BusinessEntityID" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="BusinessEntityID" referencedTableName="SalesPerson"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-85">
        <addForeignKeyConstraint baseColumnNames="BusinessEntityID" baseTableName="SalesPerson" constraintName="FK_SalesPerson_Employee_BusinessEntityID" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="BusinessEntityID" referencedTableName="Employee" referencedTableSchemaName="HUMANRESOURCES"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-86">
        <addForeignKeyConstraint baseColumnNames="TerritoryID" baseTableName="SalesPerson" constraintName="FK_SalesPerson_SalesTerritory_TerritoryID" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="TerritoryID" referencedTableName="SalesTerritory"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-87">
        <addForeignKeyConstraint baseColumnNames="StateProvinceID" baseTableName="SalesTaxRate" constraintName="FK_SalesTaxRate_StateProvince_StateProvinceID" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="StateProvinceID" referencedTableName="StateProvince" referencedTableSchemaName="PERSON"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-88">
        <addForeignKeyConstraint baseColumnNames="BusinessEntityID" baseTableName="SalesTerritoryHistory" constraintName="FK_SalesTerritoryHistory_SalesPerson_BusinessEntityID" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="BusinessEntityID" referencedTableName="SalesPerson"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-89">
        <addForeignKeyConstraint baseColumnNames="TerritoryID" baseTableName="SalesTerritoryHistory" constraintName="FK_SalesTerritoryHistory_SalesTerritory_TerritoryID" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="TerritoryID" referencedTableName="SalesTerritory"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-90">
        <addForeignKeyConstraint baseColumnNames="CountryRegionCode" baseTableName="SalesTerritory" constraintName="FK_SalesTerritory_CountryRegion_CountryRegionCode" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="CountryRegionCode" referencedTableName="CountryRegion" referencedTableSchemaName="PERSON"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-91">
        <addForeignKeyConstraint baseColumnNames="ProductID" baseTableName="ShoppingCartItem" constraintName="FK_ShoppingCartItem_Product_ProductID" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="ProductID" referencedTableName="Product" referencedTableSchemaName="PRODUCTION"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-92">
        <addForeignKeyConstraint baseColumnNames="ProductID" baseTableName="SpecialOfferProduct" constraintName="FK_SpecialOfferProduct_Product_ProductID" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="ProductID" referencedTableName="Product" referencedTableSchemaName="PRODUCTION"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-93">
        <addForeignKeyConstraint baseColumnNames="SpecialOfferID" baseTableName="SpecialOfferProduct" constraintName="FK_SpecialOfferProduct_SpecialOffer_SpecialOfferID" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="SpecialOfferID" referencedTableName="SpecialOffer"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-94">
        <addForeignKeyConstraint baseColumnNames="BusinessEntityID" baseTableName="Store" constraintName="FK_Store_BusinessEntity_BusinessEntityID" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="BusinessEntityID" referencedTableName="BusinessEntity" referencedTableSchemaName="PERSON"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-95">
        <addForeignKeyConstraint baseColumnNames="SalesPersonID" baseTableName="Store" constraintName="FK_Store_SalesPerson_SalesPersonID" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="BusinessEntityID" referencedTableName="SalesPerson"/>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-96">
        <createView fullDefinition="false" viewName="vIndividualCustomer">SELECT 
    p.[BusinessEntityID]
    ,p.[Title]
    ,p.[FirstName]
    ,p.[MiddleName]
    ,p.[LastName]
    ,p.[Suffix]
    ,pp.[PhoneNumber]
	,pnt.[Name] AS [PhoneNumberType]
    ,ea.[EmailAddress]
    ,p.[EmailPromotion]
    ,at.[Name] AS [AddressType]
    ,a.[AddressLine1]
    ,a.[AddressLine2]
    ,a.[City]
    ,[StateProvinceName] = sp.[Name]
    ,a.[PostalCode]
    ,[CountryRegionName] = cr.[Name]
    ,p.[Demographics]
FROM [Person].[Person] p
    INNER JOIN [Person].[BusinessEntityAddress] bea 
    ON bea.[BusinessEntityID] = p.[BusinessEntityID] 
    INNER JOIN [Person].[Address] a 
    ON a.[AddressID] = bea.[AddressID]
    INNER JOIN [Person].[StateProvince] sp 
    ON sp.[StateProvinceID] = a.[StateProvinceID]
    INNER JOIN [Person].[CountryRegion] cr 
    ON cr.[CountryRegionCode] = sp.[CountryRegionCode]
    INNER JOIN [Person].[AddressType] at 
    ON at.[AddressTypeID] = bea.[AddressTypeID]
	INNER JOIN [Sales].[Customer] c
	ON c.[PersonID] = p.[BusinessEntityID]
	LEFT OUTER JOIN [Person].[EmailAddress] ea
	ON ea.[BusinessEntityID] = p.[BusinessEntityID]
	LEFT OUTER JOIN [Person].[PersonPhone] pp
	ON pp.[BusinessEntityID] = p.[BusinessEntityID]
	LEFT OUTER JOIN [Person].[PhoneNumberType] pnt
	ON pnt.[PhoneNumberTypeID] = pp.[PhoneNumberTypeID]
WHERE c.StoreID IS NULL;</createView>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-97">
        <createView fullDefinition="false" viewName="vPersonDemographics">SELECT 
    p.[BusinessEntityID] 
    ,[IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; 
        TotalPurchaseYTD[1]', 'money') AS [TotalPurchaseYTD] 
    ,CONVERT(datetime, REPLACE([IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; 
        DateFirstPurchase[1]', 'nvarchar(20)') ,'Z', ''), 101) AS [DateFirstPurchase] 
    ,CONVERT(datetime, REPLACE([IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; 
        BirthDate[1]', 'nvarchar(20)') ,'Z', ''), 101) AS [BirthDate] 
    ,[IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; 
        MaritalStatus[1]', 'nvarchar(1)') AS [MaritalStatus] 
    ,[IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; 
        YearlyIncome[1]', 'nvarchar(30)') AS [YearlyIncome] 
    ,[IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; 
        Gender[1]', 'nvarchar(1)') AS [Gender] 
    ,[IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; 
        TotalChildren[1]', 'integer') AS [TotalChildren] 
    ,[IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; 
        NumberChildrenAtHome[1]', 'integer') AS [NumberChildrenAtHome] 
    ,[IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; 
        Education[1]', 'nvarchar(30)') AS [Education] 
    ,[IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; 
        Occupation[1]', 'nvarchar(30)') AS [Occupation] 
    ,[IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; 
        HomeOwnerFlag[1]', 'bit') AS [HomeOwnerFlag] 
    ,[IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; 
        NumberCarsOwned[1]', 'integer') AS [NumberCarsOwned] 
FROM [Person].[Person] p 
CROSS APPLY p.[Demographics].nodes(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; 
    /IndividualSurvey') AS [IndividualSurvey](ref) 
WHERE [Demographics] IS NOT NULL;</createView>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-98">
        <createView fullDefinition="false" viewName="vSalesPerson">SELECT 
    s.[BusinessEntityID]
    ,p.[Title]
    ,p.[FirstName]
    ,p.[MiddleName]
    ,p.[LastName]
    ,p.[Suffix]
    ,e.[JobTitle]
    ,pp.[PhoneNumber]
	,pnt.[Name] AS [PhoneNumberType]
    ,ea.[EmailAddress]
    ,p.[EmailPromotion]
    ,a.[AddressLine1]
    ,a.[AddressLine2]
    ,a.[City]
    ,[StateProvinceName] = sp.[Name]
    ,a.[PostalCode]
    ,[CountryRegionName] = cr.[Name]
    ,[TerritoryName] = st.[Name]
    ,[TerritoryGroup] = st.[Group]
    ,s.[SalesQuota]
    ,s.[SalesYTD]
    ,s.[SalesLastYear]
FROM [Sales].[SalesPerson] s
    INNER JOIN [HumanResources].[Employee] e 
    ON e.[BusinessEntityID] = s.[BusinessEntityID]
	INNER JOIN [Person].[Person] p
	ON p.[BusinessEntityID] = s.[BusinessEntityID]
    INNER JOIN [Person].[BusinessEntityAddress] bea 
    ON bea.[BusinessEntityID] = s.[BusinessEntityID] 
    INNER JOIN [Person].[Address] a 
    ON a.[AddressID] = bea.[AddressID]
    INNER JOIN [Person].[StateProvince] sp 
    ON sp.[StateProvinceID] = a.[StateProvinceID]
    INNER JOIN [Person].[CountryRegion] cr 
    ON cr.[CountryRegionCode] = sp.[CountryRegionCode]
    LEFT OUTER JOIN [Sales].[SalesTerritory] st 
    ON st.[TerritoryID] = s.[TerritoryID]
	LEFT OUTER JOIN [Person].[EmailAddress] ea
	ON ea.[BusinessEntityID] = p.[BusinessEntityID]
	LEFT OUTER JOIN [Person].[PersonPhone] pp
	ON pp.[BusinessEntityID] = p.[BusinessEntityID]
	LEFT OUTER JOIN [Person].[PhoneNumberType] pnt
	ON pnt.[PhoneNumberTypeID] = pp.[PhoneNumberTypeID];</createView>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-99">
        <createView fullDefinition="false" viewName="vSalesPersonSalesByFiscalYears">SELECT 
    pvt.[SalesPersonID]
    ,pvt.[FullName]
    ,pvt.[JobTitle]
    ,pvt.[SalesTerritory]
    ,pvt.[2002]
    ,pvt.[2003]
    ,pvt.[2004] 
FROM (SELECT 
        soh.[SalesPersonID]
        ,p.[FirstName] + ' ' + COALESCE(p.[MiddleName], '') + ' ' + p.[LastName] AS [FullName]
        ,e.[JobTitle]
        ,st.[Name] AS [SalesTerritory]
        ,soh.[SubTotal]
        ,YEAR(DATEADD(m, 6, soh.[OrderDate])) AS [FiscalYear] 
    FROM [Sales].[SalesPerson] sp 
        INNER JOIN [Sales].[SalesOrderHeader] soh 
        ON sp.[BusinessEntityID] = soh.[SalesPersonID]
        INNER JOIN [Sales].[SalesTerritory] st 
        ON sp.[TerritoryID] = st.[TerritoryID] 
        INNER JOIN [HumanResources].[Employee] e 
        ON soh.[SalesPersonID] = e.[BusinessEntityID] 
		INNER JOIN [Person].[Person] p
		ON p.[BusinessEntityID] = sp.[BusinessEntityID]
	 ) AS soh 
PIVOT 
(
    SUM([SubTotal]) 
    FOR [FiscalYear] 
    IN ([2002], [2003], [2004])
) AS pvt;</createView>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-100">
        <createView fullDefinition="false" viewName="vStoreWithAddresses">SELECT 
    s.[BusinessEntityID] 
    ,s.[Name] 
    ,at.[Name] AS [AddressType]
    ,a.[AddressLine1] 
    ,a.[AddressLine2] 
    ,a.[City] 
    ,sp.[Name] AS [StateProvinceName] 
    ,a.[PostalCode] 
    ,cr.[Name] AS [CountryRegionName] 
FROM [Sales].[Store] s
    INNER JOIN [Person].[BusinessEntityAddress] bea 
    ON bea.[BusinessEntityID] = s.[BusinessEntityID] 
    INNER JOIN [Person].[Address] a 
    ON a.[AddressID] = bea.[AddressID]
    INNER JOIN [Person].[StateProvince] sp 
    ON sp.[StateProvinceID] = a.[StateProvinceID]
    INNER JOIN [Person].[CountryRegion] cr 
    ON cr.[CountryRegionCode] = sp.[CountryRegionCode]
    INNER JOIN [Person].[AddressType] at 
    ON at.[AddressTypeID] = bea.[AddressTypeID];</createView>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-101">
        <createView fullDefinition="false" viewName="vStoreWithContacts">SELECT 
    s.[BusinessEntityID] 
    ,s.[Name] 
    ,ct.[Name] AS [ContactType] 
    ,p.[Title] 
    ,p.[FirstName] 
    ,p.[MiddleName] 
    ,p.[LastName] 
    ,p.[Suffix] 
    ,pp.[PhoneNumber] 
	,pnt.[Name] AS [PhoneNumberType]
    ,ea.[EmailAddress] 
    ,p.[EmailPromotion] 
FROM [Sales].[Store] s
    INNER JOIN [Person].[BusinessEntityContact] bec 
    ON bec.[BusinessEntityID] = s.[BusinessEntityID]
	INNER JOIN [Person].[ContactType] ct
	ON ct.[ContactTypeID] = bec.[ContactTypeID]
	INNER JOIN [Person].[Person] p
	ON p.[BusinessEntityID] = bec.[PersonID]
	LEFT OUTER JOIN [Person].[EmailAddress] ea
	ON ea.[BusinessEntityID] = p.[BusinessEntityID]
	LEFT OUTER JOIN [Person].[PersonPhone] pp
	ON pp.[BusinessEntityID] = p.[BusinessEntityID]
	LEFT OUTER JOIN [Person].[PhoneNumberType] pnt
	ON pnt.[PhoneNumberTypeID] = pp.[PhoneNumberTypeID];</createView>
    </changeSet>
    <changeSet author="sadequl_hussain (generated)" id="1463574109733-102">
        <createView fullDefinition="false" viewName="vStoreWithDemographics">SELECT 
    s.[BusinessEntityID] 
    ,s.[Name] 
    ,s.[Demographics].value('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/StoreSurvey"; 
        (/StoreSurvey/AnnualSales)[1]', 'money') AS [AnnualSales] 
    ,s.[Demographics].value('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/StoreSurvey"; 
        (/StoreSurvey/AnnualRevenue)[1]', 'money') AS [AnnualRevenue] 
    ,s.[Demographics].value('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/StoreSurvey"; 
        (/StoreSurvey/BankName)[1]', 'nvarchar(50)') AS [BankName] 
    ,s.[Demographics].value('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/StoreSurvey"; 
        (/StoreSurvey/BusinessType)[1]', 'nvarchar(5)') AS [BusinessType] 
    ,s.[Demographics].value('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/StoreSurvey"; 
        (/StoreSurvey/YearOpened)[1]', 'integer') AS [YearOpened] 
    ,s.[Demographics].value('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/StoreSurvey"; 
        (/StoreSurvey/Specialty)[1]', 'nvarchar(50)') AS [Specialty] 
    ,s.[Demographics].value('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/StoreSurvey"; 
        (/StoreSurvey/SquareFeet)[1]', 'integer') AS [SquareFeet] 
    ,s.[Demographics].value('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/StoreSurvey"; 
        (/StoreSurvey/Brands)[1]', 'nvarchar(30)') AS [Brands] 
    ,s.[Demographics].value('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/StoreSurvey"; 
        (/StoreSurvey/Internet)[1]', 'nvarchar(30)') AS [Internet] 
    ,s.[Demographics].value('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/StoreSurvey"; 
        (/StoreSurvey/NumberEmployees)[1]', 'integer') AS [NumberEmployees] 
FROM [Sales].[Store] s;</createView>
    </changeSet>
</databaseChangeLog>
