USE [TestService]
GO
/****** Object: Table [dbo].[Countries] Script Date: 06/29/2012 16:47:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Countries](
[Code] [nvarchar](3) NOT NULL,
[Name] [nvarchar](100) NOT NULL,
CONSTRAINT [PK_Countries] PRIMARY KEY CLUSTERED
(
[Code] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
CONSTRAINT [IX_Countries] UNIQUE NONCLUSTERED
(
[Name] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[Customers](
[Id] [bigint] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](50) NOT NULL,
[AddressLine1] [nvarchar](100) NOT NULL,
[AddressLine2] [nvarchar](50) NULL,
[City] [nvarchar](50) NOT NULL,
[State] [nvarchar](50) NOT NULL,
[ZipCode] [nvarchar](10) NOT NULL,
[CountryCode] [nvarchar](3) NOT NULL,
[ContactName] [nvarchar](50) NOT NULL,
[ContactEmail] [nvarchar](100) NULL,
[ContactPhone] [nvarchar](20) NULL,
[Size] [nvarchar](10) NOT NULL,
[RowVersion] [timestamp] NOT NULL,
CONSTRAINT [PK_Customers] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
CONSTRAINT [IX_Customers] UNIQUE NONCLUSTERED
(
[Name] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Customers] WITH CHECK ADD CONSTRAINT [FK_Customers_Countries] FOREIGN KEY([CountryCode])
REFERENCES [dbo].[Countries] ([Code])
GO
ALTER TABLE [dbo].[Customers] CHECK CONSTRAINT [FK_Customers_Countries]
GO
ALTER TABLE [dbo].[Customers] ADD CONSTRAINT [DF_Customers_Type] DEFAULT (N'None') FOR [Size]
GO
CREATE TABLE [dbo].[Merchants](
[Id] [bigint] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](50) NOT NULL,
[Code] [nvarchar](10) NOT NULL,
[Type] [tinyint] NOT NULL,
[CanProcessSale] [bit] NULL,
[CanProcessCredit] [bit] NULL,
[CustomerId] [bigint] NOT NULL,
[RowVersion] [timestamp] NOT NULL,
CONSTRAINT [PK_Merchants] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
CONSTRAINT [IX_Merchants] UNIQUE NONCLUSTERED
(
[Name] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Merchants] WITH CHECK ADD CONSTRAINT [FK_Merchants_Customers] FOREIGN KEY([CustomerId])
REFERENCES [dbo].[Customers] ([Id])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[Merchants] CHECK CONSTRAINT [FK_Merchants_Customers]
GO
ALTER TABLE [dbo].[Merchants] ADD CONSTRAINT [DF_Merchants_Type] DEFAULT ((0)) FOR [Type]
GO
CREATE TABLE [dbo].[Terminals](
[Id] [bigint] IDENTITY(1,1) NOT NULL,
[Code] [nvarchar](10) NOT NULL,
[CanProcessSale] [bit] NULL,
[CanProcessCredit] [bit] NULL,
[MerchantId] [bigint] NOT NULL,
[RowVersion] [timestamp] NOT NULL,
CONSTRAINT [PK_Terminals] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
CONSTRAINT [IX_Terminals] UNIQUE NONCLUSTERED
(
[Code] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Terminals] WITH CHECK ADD CONSTRAINT [FK_Terminals_Merchants] FOREIGN KEY([MerchantId])
REFERENCES [dbo].[Merchants] ([Id])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[Terminals] CHECK CONSTRAINT [FK_Terminals_Merchants]
GO
CREATE TABLE [dbo].[Transactions](
[Id] [bigint] IDENTITY(1,1) NOT NULL,
[ReferenceId] [bigint] NULL,
[Type] [tinyint] NOT NULL,
[CardNumber] [nvarchar](19) NULL,
[CardHolder] [nvarchar](100) NULL,
[Amount] [decimal](9, 2) NULL,
[RequestDate] [datetime] NULL,
[ResponseDate] [datetime] NULL,
[IsApproved] [bit] NULL,
[ResponseCode] [nvarchar](10) NULL,
[CustomerId] [bigint] NULL,
[MerchantId] [bigint] NULL,
[TerminalId] [bigint] NULL,
[RowVersion] [timestamp] NOT NULL,
CONSTRAINT [PK_Transactions] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Transactions] ADD CONSTRAINT [DF_Transactions_Type] DEFAULT ((0)) FOR [Type]
GO