IMPORTANT
———————————————————
Please make sure to always back up your files before updating. I am not responsible for any update going wrong and messing / losing your previous or actual files. 


FILE CHANGES
———————————————————
1. THE EASIEST WAY
Replace all the folders / files except the "uploads" folder, "install" folder and the "config.php" file.

2. THE ADVANCED WAY
Copy/Paste the following files, replace if needed.

app/controllers/AccountPayments.php
app/controllers/Dashboard.php
app/controllers/Domains.php
app/controllers/Link.php
app/controllers/LinkAjax.php
app/controllers/Links.php
app/controllers/Login.php
app/controllers/LostPassword.php
app/controllers/Project.php
app/controllers/ProjectAjax.php
app/controllers/Projects.php
app/controllers/Register.php
app/controllers/ResendActivation.php
app/controllers/admin-api/AdminApiUsers.php
app/controllers/admin/AdminApiDocumentation.php
app/controllers/admin/AdminCodeCreate.php
app/controllers/admin/AdminCodeUpdate.php
app/controllers/admin/AdminDomains.php
app/controllers/admin/AdminLinks.php
app/controllers/admin/AdminPayments.php
app/controllers/admin/AdminSettings.php
app/controllers/admin/AdminUserCreate.php
app/controllers/admin/AdminUserView.php
app/controllers/admin/AdminUsers.php
app/controllers/link/Link.php
app/core/App.php
app/core/Router.php
app/helpers/Captcha.php
app/helpers/Filters.php
app/helpers/Response.php
app/includes/biolink_socials.php
app/includes/product.php
app/init.php
app/languages/english.json
app/models/Project.php
app/models/User.php
app/traits/Apiable.php
themes/altum/assets/css/admin-custom.css
themes/altum/assets/css/custom.css
themes/altum/assets/images/no_data.svg
themes/altum/views/account-plan/index.php
themes/altum/views/admin/api-documentation/index.php
themes/altum/views/admin/code-update/index.php
themes/altum/views/admin/codes/index.php
themes/altum/views/admin/domains/index.php
themes/altum/views/admin/index/index.php
themes/altum/views/admin/links/index.php
themes/altum/views/admin/partials/admin_sidebar.php
themes/altum/views/admin/payments/index.php
themes/altum/views/admin/plans/index.php
themes/altum/views/admin/settings/index.php
themes/altum/views/admin/user-view/index.php
themes/altum/views/admin/users/index.php
themes/altum/views/admin/wrapper.php
themes/altum/views/dashboard/index.php
themes/altum/views/domains/index.php
themes/altum/views/link-path/ - WHOLE FOLDER
themes/altum/views/link/ - WHOLE FOLDER
themes/altum/views/links/ - WHOLE FOLDER
themes/altum/views/login/index.php
themes/altum/views/lost-password/index.php
themes/altum/views/partials/account_header.php
themes/altum/views/partials/menu.php
themes/altum/views/pay/index.php
themes/altum/views/project/index.php
themes/altum/views/projects/ - WHOLE FOLDER
themes/altum/views/register/index.php
themes/altum/views/resend-activation/index.php


DATABASE CHANGES 
--------------------
IMPORTANT: MAKE SURE YOU BACKUP YOUR DATABASE JUST TO BE SAFE. 

You will have to run the following queries into your database. 

You can run those with PhpMyAdmin -> selecting the database -> going to the SQL tab and running the following mysql queries:


COPY & RUN THE FOLLOWING QUERIES
--------
alter table users add api_key varchar(32) null after name;
create index users_api_key_index on users (api_key);
UPDATE users SET api_key = concat(
    lpad(conv(floor(rand()*pow(36,8)), 10, 36), 8, 0),
    lpad(conv(floor(rand()*pow(36,8)), 10, 36), 8, 0),
    lpad(conv(floor(rand()*pow(36,8)), 10, 36), 8, 0),
    lpad(conv(floor(rand()*pow(36,8)), 10, 36), 8, 0)
);

alter table links modify project_id int null;
alter table links drop foreign key links_ibfk_2;
alter table links add constraint links_ibfk_2 foreign key (project_id) references projects (project_id) on update cascade on delete set null;
alter table track_links add user_id int null after id;
UPDATE track_links LEFT JOIN `projects` ON `track_links`.`project_id` = `projects`.`project_id` SET `track_links`.`user_id` = `projects`.`user_id`;
DELETE FROM track_links WHERE user_id IS NULL OR user_id = '';
alter table track_links	add constraint track_links_users_user_id_fk foreign key (user_id) references users (user_id) on update cascade on delete cascade;
alter table track_links add constraint track_links_projects_project_id_fk foreign key (project_id) references projects (project_id) on update cascade on delete set null;

--------


COPY & RUN THE FOLLOWING QUERIES ONLY IF YOU HAVE AN EXTENDED LICENSE
--------
alter table payments modify payment_id varchar(128) null;
--------
