use Mangata_Gallo;

-- 2.1
-- Створіть таблицю "Staff" з такими атрибутами та обмеженнями "не порожнє":
-- StaffID: первинний ключ, тип - цілі, не порожнє
-- PhoneNumber: тип - цілі, не порожнє, унікальні
-- FullName: тип - змінний символьний довжиною 100, не порожнє
-- email: тип - змінний символьний довжиною 100, не порожнє, знаходиться у домені "mangata-gallo.com"
-- Відобразіть схему таблиці
-- Додайте два записи у таблицю, які задовольняють обмеженням, спробуйте ввести один запис для якого значення домену не відповідає обмеженню

create table Staff (
    staff_id int primary key auto_increment,
    phone_number int not null unique,
    full_name nvarchar (100) not null,
    email nvarchar (100) not null check (
        email like '%@mangata-gallo.com'
    )
);

insert into
    Staff (
        phone_number,
        full_name,
        email
    )
values (
        123456789,
        'John Doe 1',
        'random1@mangata-gallo.com'
    ),
    (
        123456788,
        'John Doe 2',
        'random2@mangata-gallo.com'
    );

insert into
    Staff (
        phone_number,
        full_name,
        email
    )
values (
        123456787,
        'John Doe 3',
        'random3@gallo.com'
    );

-- 2.2
-- Створіть таблицю "ContractInfo" з такими атрибутами та обмеженнями "не порожнє":
-- ContractID: первинний ключ, тип - цілі, не порожнє
-- StaffID: тип - цілі, не порожнє
-- Location: тип - змінний символьний довжиною 50, не порожнє, значення за замовчуванням - "Texas"
-- StaffType: тип - змінний символьний довжиною 20, не порожнє, може набувати значень - "Junior" or a "Senior"
-- Salary: тип – десяткові (9 розрядів, 2 знаки після коми), не порожнє
-- Відобразіть схему таблиці
-- Додайте два записи у таблицю з довільними даними, які задовольняють обмеженням, для другого запису не додавайте значення поля Location
-- Спробуйте додати ще один запис, в якості StaffType використавши значення "Midle"

create table ContractInfo (
    contract_id int primary key auto_increment,
    staff_id int not null,
    location nvarchar (50) default 'Texas',
    staff_type nvarchar (20) check (
        staff_type in ('Junior', 'Senior')
    ),
    salary decimal(9, 2) not null,
    constraint fk_staff foreign key (staff_id) references Staff (staff_id)
);

insert into
    ContractInfo (
        staff_id,
        location,
        staff_type,
        salary
    )
values (1, 'Texas', 'Junior', 100000);

insert into
    ContractInfo (staff_id, staff_type, salary)
values (2, 'Senior', 200000);

insert into
    ContractInfo (
        staff_id,
        location,
        staff_type,
        salary
    )
values (3, 'Texas', 'Middle', 150000);