From 0f33ba1a82865b62c8c7a510e5b43181abcabbb3 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 24 Dec 2024 00:01:34 +0300 Subject: [PATCH] feat: fix some mistakes & add more orders --- backend/dump/dump.json | 441 +++++++++++++++++++++++++++++++---------- 1 file changed, 331 insertions(+), 110 deletions(-) diff --git a/backend/dump/dump.json b/backend/dump/dump.json index 6ada476..82f8b89 100644 --- a/backend/dump/dump.json +++ b/backend/dump/dump.json @@ -2,11 +2,12 @@ "users": [ { "id": "672e9b383565edfa236c4a64", + "email": "phill@mail.ru", + "password": "$2a$10$hZxnc1XMWvz6HJnN8sFrhOTPgBoBOuiX0.QpDg3v9udR0kcqviojO", "name": "Филипп", "surname": "Гоген", "patronymic": "Елисеевич", - "email": "phill@mail.ru", - "password": "$2a$10$hZxnc1XMWvz6HJnN8sFrhOTPgBoBOuiX0.QpDg3v9udR0kcqviojO", + "phone_number": "+7 (871) 123-31-21", "addresses": [ { "id": "fa26c4a64672e9b383565ed3", @@ -16,7 +17,8 @@ "entrance": "3", "floor": "4", "door_number": "96", - "created_at": "2024-03-22T19:00:00.000Z" + "created_at": "2024-03-22T19:00:00Z", + "updated_at": "0001-01-01T00:00:00Z" }, { "id": "84135ed53fa26c4a64672e9b", @@ -26,81 +28,88 @@ "entrance": "1", "floor": "2", "door_number": "3", - "created_at": "2024-04-01T09:13:22.000Z" + "created_at": "2024-04-01T09:13:22Z", + "updated_at": "0001-01-01T00:00:00Z" } ], - "phone_number": "+7 (871) 123-31-21", "user_type": "CLIENT", - "created_at": "2024-03-21T14:00:00.000Z" + "created_at": "2024-03-21T14:00:00Z", + "updated_at": "0001-01-01T00:00:00Z" }, { "id": "091a64672e9b383565ed3fa2", + "email": "andrey@mail.ru", + "password": "$2a$10$dC8NSVsldxLdQbSzW9DPCO4LWoP1ZJDzdH0tbW5aPdUG.XOyIe596", "name": "Андрей", "surname": "Петров", "patronymic": "Иванович", - "email": "andrey@mail.ru", - "orders_count": 2, - "password": "$2a$10$dC8NSVsldxLdQbSzW9DPCO4LWoP1ZJDzdH0tbW5aPdUG.XOyIe596", "phone_number": "+7 (999) 010-10-22", + "orders_count": 2, "user_type": "WORKER", - "created_at": "2024-03-20T12:13:00.000Z" + "created_at": "2024-03-20T12:13:00Z", + "updated_at": "0001-01-01T00:00:00Z" }, { "id": "60b8c093f6d292edb4b4a758", + "email": "alex@mail.ru", + "password": "$2a$10$TnRpI7Bc5jyRI1vh6MYk2.UBp0t5V5n1I.kp4z8BdZIzxyUusIpmq", "name": "Александр", "surname": "Головин", "patronymic": "Петрович", - "email": "alex@mail.ru", - "password": "$2a$10$TnRpI7Bc5jyRI1vh6MYk2.UBp0t5V5n1I.kp4z8BdZIzxyUusIpmq", "phone_number": "+7 (999) 111-22-33", "user_type": "CLIENT", - "created_at": "2024-04-05T09:00:00.000Z" + "created_at": "2024-04-05T09:00:00Z", + "updated_at": "0001-01-01T00:00:00Z" }, { "id": "60b8c093f6d292edb4b4a759", + "email": "katya@mail.ru", + "password": "$2a$10$bh0Y3bOB4lkIImrXwvDhL2gnzLf0pX6r0kO2ja13kR5LdyKD9yROO", "name": "Екатерина", "surname": "Смирнова", "patronymic": "Викторовна", - "email": "katya@mail.ru", - "orders_count": 2, - "password": "$2a$10$bh0Y3bOB4lkIImrXwvDhL2gnzLf0pX6r0kO2ja13kR5LdyKD9yROO", "phone_number": "+7 (999) 444-55-66", + "orders_count": 2, "user_type": "WORKER", - "created_at": "2024-04-05T11:15:00.000Z" + "created_at": "2024-04-05T11:15:00Z", + "updated_at": "0001-01-01T00:00:00Z" }, { "id": "60b8c093f6d292edb4b4a761", + "email": "marina@mail.ru", + "password": "$2a$10$J7XkT3xLwvQJxJn68mXbo/jhD5pw7vwIMomik6CH32ewX3jZf1Gti", "name": "Марина", "surname": "Давыдова", "patronymic": "Михайловна", - "email": "marina@mail.ru", - "orders_count": 3, - "password": "$2a$10$J7XkT3xLwvQJxJn68mXbo/jhD5pw7vwIMomik6CH32ewX3jZf1Gti", "phone_number": "+7 (999) 888-99-00", + "orders_count": 3, "user_type": "WORKER", - "created_at": "2024-04-06T10:00:00.000Z" + "created_at": "2024-04-06T10:00:00Z", + "updated_at": "0001-01-01T00:00:00Z" }, { "id": "60b8c093f6d292edb4b4a762", + "email": "sergey@mail.ru", + "password": "$2a$10$rb7XkT3kTYOBWsI3hbHtk6BoF02WJKh8wPIjfIqF5b08NOZTVt.sW", "name": "Сергей", "surname": "Васильев", "patronymic": "Павлович", - "email": "sergey@mail.ru", - "password": "$2a$10$rb7XkT3kTYOBWsI3hbHtk6BoF02WJKh8wPIjfIqF5b08NOZTVt.sW", "phone_number": "+7 (999) 222-33-44", "user_type": "CLIENT", - "created_at": "2024-04-06T12:45:00.000Z" + "created_at": "2024-04-06T12:45:00Z", + "updated_at": "0001-01-01T00:00:00Z" }, { "id": "5ed3a26c4a64672e9b383565", + "email": "admin@mail.ru", + "password": "$2a$10$cHfplFCb7OJ72ccGZLZhRuqY/3CYBJ1FvSKVQg709I4wlhCYC0bT2", "name": "Иван", "surname": "Сидоров", "patronymic": "Петрович", - "email": "admin@mail.ru", - "password": "$2a$10$cHfplFCb7OJ72ccGZLZhRuqY/3CYBJ1FvSKVQg709I4wlhCYC0bT2", "phone_number": "+7 (888) 123-66-96", "user_type": "ADMIN", - "created_at": "2024-03-19T10:00:00.000Z" + "created_at": "2024-03-19T10:00:00Z", + "updated_at": "0001-01-01T00:00:00Z" } ], "services": [ @@ -113,18 +122,19 @@ "consumables": [ { "id": "a64672e9b383565ed3fa26c4", - "name": "Утюг", "ean_code": "1234567890123", + "name": "Утюг", "amount": 1 }, { "id": "fa26c4a64672e9b383565ed3", - "name": "Гладильная доска", "ean_code": "9134567890124", + "name": "Гладильная доска", "amount": 1 } ], - "created_at": "2024-03-23T10:00:00.000Z" + "created_at": "2024-03-23T10:00:00Z", + "updated_at": "0001-01-01T00:00:00Z" }, { "id": "3fa26c4a64672e9b383565ed", @@ -135,18 +145,19 @@ "consumables": [ { "id": "b383565ed3fa26c4a64672e9", - "name": "Пылесос", "ean_code": "2345678901234", + "name": "Пылесос", "amount": 1 }, { "id": "c4a64672e9b383565ed3fa26", - "name": "Моющее средство", "ean_code": "3456789012345", + "name": "Моющее средство", "amount": 1 } ], - "created_at": "2024-03-25T08:00:00.000Z" + "created_at": "2024-03-25T08:00:00Z", + "updated_at": "0001-01-01T00:00:00Z" }, { "id": "565ed3fa26c4a64672e9b383", @@ -157,12 +168,13 @@ "consumables": [ { "id": "d3fa26c4a64672e9b38356ed", - "name": "Моющее средство", "ean_code": "3456789012345", + "name": "Моющее средство", "amount": 1 } ], - "created_at": "2024-03-25T15:00:00.000Z" + "created_at": "2024-03-25T15:00:00Z", + "updated_at": "0001-01-01T00:00:00Z" } ], "orders": [ @@ -178,26 +190,33 @@ "floor": "4", "door_number": "96" }, - "date_time": "2024-03-25T16:00:00.000Z", + "date_time": "2024-12-23T16:00:00Z", "price": 6935, "number_of_rooms": 2, "number_of_bathrooms": 1, - "pollution": 30, + "pollution": 5, "area": 55, "comment": "Хочу чтобы все было чисто", "status_log": [ { "id": "5ed53fa26c4a64672e9b3856", - "new_status": "IN_PROGRESS", "prev_status": "CREATED", - "created_at": "2024-03-25T14:00:00.000Z" + "new_status": "IN_PROGRESS", + "created_at": "2024-03-25T18:00:00Z" } ], "status": "IN_PROGRESS", - "services": ["3fa26c4a64672e9b383565ed", "565ed3fa26c4a64672e9b383"], - "required_workers": 1, - "workers": ["091a64672e9b383565ed3fa2", "e95b383091a6467265ed3fa2"], - "created_at": "2024-03-25T14:00:00.000Z" + "services": [ + "3fa26c4a64672e9b383565ed", + "565ed3fa26c4a64672e9b383" + ], + "required_workers": 2, + "workers": [ + "091a64672e9b383565ed3fa2", + "e95b383091a6467265ed3fa2" + ], + "created_at": "2024-03-25T14:00:00Z", + "updated_at": "0001-01-01T00:00:00Z" }, { "id": "383565ed3fa26c4a64672e9b", @@ -211,18 +230,20 @@ "floor": "2", "door_number": "3" }, - "date_time": "2024-03-27T16:00:00.000Z", + "date_time": "2024-12-31T14:00:00Z", "price": 3759, "number_of_rooms": 1, "number_of_bathrooms": 1, - "pollution": 50, + "pollution": 5, "area": 30, "comment": "Хочу чтобы все было чисто", "status": "CREATED", - "services": ["3fa26c4a64672e9b383565ed"], + "services": [ + "3fa26c4a64672e9b383565ed" + ], "required_workers": 1, - "workers": [], - "created_at": "2024-03-25T14:00:00.000Z" + "created_at": "2024-03-25T14:00:00Z", + "updated_at": "0001-01-01T00:00:00Z" }, { "id": "c4a64672e9b383565ed3fa26", @@ -236,32 +257,37 @@ "floor": "4", "door_number": "96" }, - "date_time": "2024-03-26T16:00:00.000Z", + "date_time": "2024-07-26T16:00:00Z", "price": 4920, "number_of_rooms": 1, "number_of_bathrooms": 1, - "pollution": 70, + "pollution": 7, "area": 40, "comment": "Хочу чтобы все было чисто", "status_log": [ { "id": "4a64672e9b383565ed3fa26c", - "new_status": "IN_PROGRESS", "prev_status": "CREATED", - "created_at": "2024-03-25T14:00:00.000Z" + "new_status": "IN_PROGRESS", + "created_at": "2024-03-25T14:00:00Z" }, { "id": "3fa26c4a64672e9b383565ed", - "new_status": "FINISHED", "prev_status": "IN_PROGRESS", - "created_at": "2024-03-26T16:00:00.000Z" - } + "new_status": "FINISHED", + "created_at": "2024-03-26T16:00:00Z" + } ], "status": "FINISHED", - "services": ["3565ed3fa26c4a64672e9b38"], - "required_workers": 1, - "workers": ["091a64672e9b383565ed3fa2"], - "created_at": "2024-03-25T14:00:00.000Z" + "services": [ + "3565ed3fa26c4a64672e9b38" + ], + "required_workers": 1, + "workers": [ + "091a64672e9b383565ed3fa2" + ], + "created_at": "2024-03-25T14:00:00Z", + "updated_at": "0001-01-01T00:00:00Z" }, { "id": "60b8c093f6d292edb4b4a763", @@ -275,26 +301,32 @@ "floor": "2", "door_number": "15" }, - "date_time": "2024-04-07T14:00:00.000Z", + "date_time": "2024-04-23T14:00:00Z", "price": 8079, "number_of_rooms": 3, "number_of_bathrooms": 1, - "pollution": 40, + "pollution": 4, "area": 65, "comment": "Требуется качественная уборка", "status_log": [ { "id": "60b8c093f6d292edb4b4a765", - "new_status": "IN_PROGRESS", "prev_status": "CREATED", - "created_at": "2024-04-07T13:30:00.000Z" + "new_status": "IN_PROGRESS", + "created_at": "2024-04-07T13:30:00Z" } ], "status": "IN_PROGRESS", - "services": ["3565ed3fa26c4a64672e9b38", "3fa26c4a64672e9b383565ed"], + "services": [ + "3565ed3fa26c4a64672e9b38", + "3fa26c4a64672e9b383565ed" + ], "required_workers": 1, - "workers": ["60b8c093f6d292edb4b4a759"], - "created_at": "2024-04-07T13:30:00.000Z" + "workers": [ + "60b8c093f6d292edb4b4a759" + ], + "created_at": "2024-04-07T13:30:00Z", + "updated_at": "0001-01-01T00:00:00Z" }, { "id": "60b8c093f6d292edb4b4a766", @@ -308,19 +340,20 @@ "floor": "3", "door_number": "20" }, - "date_time": "2024-04-08T09:00:00.000Z", + "date_time": "2024-04-24T09:00:00Z", "price": 6200, "number_of_rooms": 2, "number_of_bathrooms": 1, - "pollution": 25, + "pollution": 3, "area": 50, "comment": "Стандартная уборка", - "status_log": [], "status": "CREATED", - "services": ["565ed3fa26c4a64672e9b383"], + "services": [ + "565ed3fa26c4a64672e9b383" + ], "required_workers": 1, - "workers": [], - "created_at": "2024-04-07T14:30:00.000Z" + "created_at": "2024-04-07T14:30:00Z", + "updated_at": "0001-01-01T00:00:00Z" }, { "id": "60b8c093f6d292edb4b4a769", @@ -334,26 +367,31 @@ "floor": "4", "door_number": "35" }, - "date_time": "2024-04-08T16:00:00.000Z", + "date_time": "2024-04-23T16:00:00Z", "price": 9120, "number_of_rooms": 4, "number_of_bathrooms": 2, - "pollution": 60, + "pollution": 6, "area": 75, "comment": "Требуется очистка всех помещений", "status_log": [ { "id": "60b8c093f6d292edb4b4a771", - "new_status": "IN_PROGRESS", "prev_status": "CREATED", - "created_at": "2024-04-08T15:30:00.000Z" + "new_status": "IN_PROGRESS", + "created_at": "2024-04-08T15:30:00Z" } ], "status": "IN_PROGRESS", - "services": ["3565ed3fa26c4a64672e9b38"], - "required_workers": 2, - "workers": ["60b8c093f6d292edb4b4a761"], - "created_at": "2024-04-08T15:30:00.000Z" + "services": [ + "3565ed3fa26c4a64672e9b38" + ], + "required_workers": 1, + "workers": [ + "60b8c093f6d292edb4b4a761" + ], + "created_at": "2024-04-08T15:30:00Z", + "updated_at": "0001-01-01T00:00:00Z" }, { "id": "60b8c093f6d292edb4b4a772", @@ -367,26 +405,37 @@ "floor": "6", "door_number": "44" }, - "date_time": "2024-04-09T10:30:00.000Z", + "date_time": "2024-04-09T10:30:00Z", "price": 6720, "number_of_rooms": 2, "number_of_bathrooms": 1, - "pollution": 20, + "pollution": 2, "area": 55, "comment": "Требуется быстрая уборка", "status_log": [ { "id": "60b8c093f6d292edb4b4a774", - "new_status": "IN_PROGRESS", "prev_status": "CREATED", - "created_at": "2024-04-09T10:00:00.000Z" + "new_status": "IN_PROGRESS", + "created_at": "2024-04-09T10:00:00Z" + }, + { + "id": "d292ed60b8c093f6b4b4a774", + "prev_status": "IN_PROGRESS", + "new_status": "FINISHED", + "created_at": "2024-04-09T11:00:00Z" } ], - "status": "IN_PROGRESS", - "services": ["3565ed3fa26c4a64672e9b38"], + "status": "FINISHED", + "services": [ + "3565ed3fa26c4a64672e9b38" + ], "required_workers": 1, - "workers": ["60b8c093f6d292edb4b4a759"], - "created_at": "2024-04-09T10:00:00.000Z" + "workers": [ + "60b8c093f6d292edb4b4a759" + ], + "created_at": "2024-04-09T10:00:00Z", + "updated_at": "2024-04-09T11:00:00Z" }, { "id": "60b8c093f6d292edb4b4a775", @@ -400,26 +449,32 @@ "floor": "5", "door_number": "17" }, - "date_time": "2024-04-10T14:00:00.000Z", + "date_time": "2024-04-24T14:00:00Z", "price": 8699, "number_of_rooms": 3, "number_of_bathrooms": 1, - "pollution": 30, + "pollution": 3, "area": 70, "comment": "Необходимо генеральное очищение", "status_log": [ { "id": "60b8c093f6d292edb4b4a777", - "new_status": "IN_PROGRESS", "prev_status": "CREATED", - "created_at": "2024-04-10T13:45:00.000Z" + "new_status": "IN_PROGRESS", + "created_at": "2024-04-10T13:45:00Z" } ], "status": "IN_PROGRESS", - "services": ["3fa26c4a64672e9b383565ed", "565ed3fa26c4a64672e9b383"], - "required_workers": 2, - "workers": ["60b8c093f6d292edb4b4a761"], - "created_at": "2024-04-10T13:45:00.000Z" + "services": [ + "3fa26c4a64672e9b383565ed", + "565ed3fa26c4a64672e9b383" + ], + "required_workers": 1, + "workers": [ + "60b8c093f6d292edb4b4a761" + ], + "created_at": "2024-04-10T13:45:00Z", + "updated_at": "0001-01-01T00:00:00Z" }, { "id": "60b8c093f6d292edb4b4a778", @@ -433,26 +488,32 @@ "floor": "3", "door_number": "28" }, - "date_time": "2024-04-11T12:00:00.000Z", + "date_time": "2024-04-25T12:00:00Z", "price": 9899, "number_of_rooms": 4, "number_of_bathrooms": 2, - "pollution": 40, + "pollution": 4, "area": 80, "comment": "Производить уборку после ремонта", "status_log": [ { "id": "60b8c093f6d292edb4b4a780", - "new_status": "IN_PROGRESS", "prev_status": "CREATED", - "created_at": "2024-04-11T11:45:00.000Z" + "new_status": "IN_PROGRESS", + "created_at": "2024-04-11T11:45:00Z" } ], "status": "IN_PROGRESS", - "services": ["3fa26c4a64672e9b383565ed", "565ed3fa26c4a64672e9b383"], - "required_workers": 2, - "workers": ["60b8c093f6d292edb4b4a761"], - "created_at": "2024-04-11T11:45:00.000Z" + "services": [ + "3fa26c4a64672e9b383565ed", + "565ed3fa26c4a64672e9b383" + ], + "required_workers": 1, + "workers": [ + "60b8c093f6d292edb4b4a761" + ], + "created_at": "2024-04-11T11:45:00Z", + "updated_at": "0001-01-01T00:00:00Z" }, { "id": "60b8c093f6d292edb4b4a781", @@ -466,19 +527,179 @@ "floor": "7", "door_number": "5" }, - "date_time": "2024-04-12T09:30:00.000Z", + "date_time": "2024-12-27T09:30:00Z", "price": 12299, "number_of_rooms": 5, "number_of_bathrooms": 2, - "pollution": 50, + "pollution": 1, "area": 100, "comment": "Нужна полная уборка дома после въезда", - "status_log": [], "status": "CREATED", - "services": ["3fa26c4a64672e9b383565ed", "565ed3fa26c4a64672e9b383"], + "services": [ + "3fa26c4a64672e9b383565ed", + "565ed3fa26c4a64672e9b383" + ], "required_workers": 2, - "workers": [], - "created_at": "2024-04-12T09:00:00.000Z" + "created_at": "2024-04-12T09:00:00Z", + "updated_at": "0001-01-01T00:00:00Z" + }, + { + "id": "6769ca45568d3a254952d5e6", + "user_id": "672e9b383565edfa236c4a64", + "address": { + "id": "000000000000000000000000", + "city": "Москва", + "street": "Пушкина", + "building": "2", + "entrance": "1", + "floor": "2", + "door_number": "3" + }, + "date_time": "2024-12-24T09:09:00Z", + "price": 1150, + "number_of_rooms": 1, + "number_of_bathrooms": 1, + "pollution": 1, + "area": 5, + "status": "CREATED", + "required_workers": 0, + "created_at": "2024-12-23T20:38:29.532Z", + "updated_at": "0001-01-01T00:00:00Z" + }, + { + "id": "6769cad3568d3a254952d5e7", + "user_id": "672e9b383565edfa236c4a64", + "address": { + "id": "000000000000000000000000", + "city": "Москва", + "street": "Пушкина", + "building": "2", + "entrance": "1", + "floor": "2", + "door_number": "3" + }, + "date_time": "2024-12-25T05:55:00Z", + "price": 5520, + "number_of_rooms": 2, + "number_of_bathrooms": 1, + "pollution": 3, + "area": 30, + "status": "CREATED", + "services": [ + "3565ed3fa26c4a64672e9b38" + ], + "required_workers": 1, + "created_at": "2024-12-23T20:40:51.625Z", + "updated_at": "0001-01-01T00:00:00Z" + }, + { + "id": "6769caf1568d3a254952d5e8", + "user_id": "672e9b383565edfa236c4a64", + "address": { + "id": "000000000000000000000000", + "city": "Москва", + "street": "Ленина", + "building": "1", + "entrance": "3", + "floor": "4", + "door_number": "96" + }, + "date_time": "2024-12-31T12:26:00Z", + "price": 6499, + "number_of_rooms": 1, + "number_of_bathrooms": 2, + "pollution": 7, + "area": 30, + "status": "CREATED", + "services": [ + "565ed3fa26c4a64672e9b383", + "3fa26c4a64672e9b383565ed" + ], + "required_workers": 1, + "created_at": "2024-12-23T20:41:21.044Z", + "updated_at": "0001-01-01T00:00:00Z" + }, + { + "id": "6769cb15568d3a254952d5e9", + "user_id": "672e9b383565edfa236c4a64", + "address": { + "id": "000000000000000000000000", + "city": "Москва", + "street": "Пушкина", + "building": "2", + "entrance": "1", + "floor": "2", + "door_number": "3" + }, + "date_time": "2024-12-29T13:10:00Z", + "price": 4720, + "number_of_rooms": 1, + "number_of_bathrooms": 2, + "pollution": 4, + "area": 22, + "status": "CREATED", + "services": [ + "3565ed3fa26c4a64672e9b38", + "565ed3fa26c4a64672e9b383" + ], + "required_workers": 1, + "created_at": "2024-12-23T20:41:57.471Z", + "updated_at": "0001-01-01T00:00:00Z" + }, + { + "id": "6769cb37568d3a254952d5ea", + "user_id": "672e9b383565edfa236c4a64", + "address": { + "id": "000000000000000000000000", + "city": "Москва", + "street": "Пушкина", + "building": "2", + "entrance": "1", + "floor": "2", + "door_number": "3" + }, + "date_time": "2024-12-27T12:25:00Z", + "price": 10169, + "number_of_rooms": 2, + "number_of_bathrooms": 2, + "pollution": 10, + "area": 49, + "status": "CREATED", + "services": [ + "3fa26c4a64672e9b383565ed", + "565ed3fa26c4a64672e9b383", + "3565ed3fa26c4a64672e9b38" + ], + "required_workers": 1, + "created_at": "2024-12-23T20:42:31.903Z", + "updated_at": "0001-01-01T00:00:00Z" + }, + { + "id": "6769cb61568d3a254952d5eb", + "user_id": "672e9b383565edfa236c4a64", + "address": { + "id": "000000000000000000000000", + "city": "Москва", + "street": "Ленина", + "building": "1", + "entrance": "3", + "floor": "4", + "door_number": "96" + }, + "date_time": "2024-12-30T13:35:00Z", + "price": 12519, + "number_of_rooms": 3, + "number_of_bathrooms": 1, + "pollution": 7, + "area": 70, + "status": "CREATED", + "services": [ + "3565ed3fa26c4a64672e9b38", + "3fa26c4a64672e9b383565ed" + ], + "required_workers": 1, + "created_at": "2024-12-23T20:43:13.419Z", + "updated_at": "0001-01-01T00:00:00Z" } ] } \ No newline at end of file