if exists (select top 1 1 from sys.objects where name = 'AppUser' and type = 'U')
	and not exists(select top 1 1 from sys.columns where name = 'SecurityStamp' and object_id = object_id('AppUser'))
begin
	select * into #TmpAppUser from AppUser
	drop table AppUser
end

if not exists (select top 1 1 from sys.objects where name = 'AppUser' and type = 'U')
begin
	create table AppUser
	(
		UserId int identity(0, 1) constraint PK_AppUser primary key,
		UserName varchar(100) not null constraint UQ_AppUser_UserName unique,
		[Password] varchar(100) not null,
		FirstName varchar(100),
		LastName varchar(100),
		Email varchar(100) constraint UQ_AppUser_Email unique,
		ProfilePictureUrl varchar(200),
		SecurityStamp varchar(200) constraint UQ_AppUser_SecurityStamp unique,
		StatusId int not null constraint FK_AppUser_UserStatus references UserStatus(StatusId),
		CreationDate datetime constraint DF_AppUser_CreationDate default getdate(),
		FailedLoginAttempts int,
		LastLoginDate datetime,
		PasswordChangeDate datetime
	)
end
go

if not exists (select top 1 1 from AppUser)
begin
	declare @activeStatusId int
	select @activeStatusId = StatusId from UserStatus where StatusCode = 'ACTIVE'

	insert into AppUser(UserName, [Password], CreationDate, SecurityStamp, StatusId)
	select UserName, [Password], CreationDate, cast(newid() as varchar(100)), @activeStatusId as StatusId
	from #TmpAppUser

	drop table #TmpAppUser
end
go