feat: Initial commit
This commit is contained in:
12
src/main/java/com/example/nto/App.java
Normal file
12
src/main/java/com/example/nto/App.java
Normal file
@@ -0,0 +1,12 @@
|
||||
package com.example.nto;
|
||||
|
||||
/**
|
||||
* TODO: ДОРАБОТАТЬ в рамках задания
|
||||
* =================================
|
||||
* МОЖНО: Добавлять методы, аннотации, зависимости
|
||||
* НЕЛЬЗЯ: Изменять название класса и пакета
|
||||
*/
|
||||
public class App {
|
||||
public static void main(String[] args) {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.example.nto.controller;
|
||||
|
||||
/**
|
||||
* TODO: ДОРАБОТАТЬ в рамках задания
|
||||
* =================================
|
||||
* МОЖНО: Добавлять методы, аннотации, зависимости
|
||||
* НЕЛЬЗЯ: Изменять название класса и пакета
|
||||
*/
|
||||
public class BookingController {
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.example.nto.controller;
|
||||
|
||||
/**
|
||||
* TODO: ДОРАБОТАТЬ в рамках задания
|
||||
* =================================
|
||||
* МОЖНО: Добавлять методы, аннотации, зависимости
|
||||
* НЕЛЬЗЯ: Изменять название класса и пакета
|
||||
*/
|
||||
public class EmployeeController {
|
||||
}
|
||||
35
src/main/java/com/example/nto/entity/Booking.java
Normal file
35
src/main/java/com/example/nto/entity/Booking.java
Normal file
@@ -0,0 +1,35 @@
|
||||
package com.example.nto.entity;
|
||||
|
||||
import jakarta.persistence.FetchType;
|
||||
import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.ManyToOne;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
|
||||
/**
|
||||
* TODO: ДОРАБОТАТЬ в рамках задания
|
||||
* =================================
|
||||
* МОЖНО: Добавлять методы, аннотации, зависимости
|
||||
* НЕЛЬЗЯ: Изменять название класса и пакета
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class Booking {
|
||||
|
||||
private long id;
|
||||
|
||||
private LocalDate date;
|
||||
|
||||
@ManyToOne(targetEntity = Place.class, fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "place_id")
|
||||
private Place place;
|
||||
|
||||
private Employee employee;
|
||||
}
|
||||
34
src/main/java/com/example/nto/entity/Employee.java
Normal file
34
src/main/java/com/example/nto/entity/Employee.java
Normal file
@@ -0,0 +1,34 @@
|
||||
package com.example.nto.entity;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* TODO: ДОРАБОТАТЬ в рамках задания
|
||||
* =================================
|
||||
* МОЖНО: Добавлять методы, аннотации, зависимости
|
||||
* НЕЛЬЗЯ: Изменять название класса и пакета
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class Employee {
|
||||
|
||||
private long id;
|
||||
|
||||
private String name;
|
||||
|
||||
private String code;
|
||||
|
||||
private String photoUrl;
|
||||
|
||||
@OneToMany(mappedBy = "employee", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
|
||||
private List<Booking> bookingList;
|
||||
}
|
||||
29
src/main/java/com/example/nto/entity/Place.java
Normal file
29
src/main/java/com/example/nto/entity/Place.java
Normal file
@@ -0,0 +1,29 @@
|
||||
package com.example.nto.entity;
|
||||
|
||||
import jakarta.persistence.GeneratedValue;
|
||||
import jakarta.persistence.GenerationType;
|
||||
import jakarta.persistence.Id;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
|
||||
/**
|
||||
* TODO: ДОРАБОТАТЬ в рамках задания
|
||||
* =================================
|
||||
* МОЖНО: Добавлять методы, аннотации, зависимости
|
||||
* НЕЛЬЗЯ: Изменять название класса и пакета
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class Place {
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private long id;
|
||||
|
||||
private String place;
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.example.nto.repository;
|
||||
|
||||
/**
|
||||
* TODO: ДОРАБОТАТЬ в рамках задания
|
||||
* =================================
|
||||
* МОЖНО: Добавлять методы, аннотации, зависимости
|
||||
* НЕЛЬЗЯ: Изменять название класса и пакета
|
||||
*/
|
||||
public interface BookingRepository {
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.example.nto.repository;
|
||||
|
||||
/**
|
||||
* TODO: ДОРАБОТАТЬ в рамках задания
|
||||
* =================================
|
||||
* МОЖНО: Добавлять методы, аннотации, зависимости
|
||||
* НЕЛЬЗЯ: Изменять название класса и пакета
|
||||
*/
|
||||
public interface EmployeeRepository {
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.example.nto.repository;
|
||||
|
||||
/**
|
||||
* TODO: ДОРАБОТАТЬ в рамках задания
|
||||
* =================================
|
||||
* МОЖНО: Добавлять методы, аннотации, зависимости
|
||||
* НЕЛЬЗЯ: Изменять название класса и пакета
|
||||
*/
|
||||
public interface PlaceRepository {
|
||||
}
|
||||
10
src/main/java/com/example/nto/service/BookingService.java
Normal file
10
src/main/java/com/example/nto/service/BookingService.java
Normal file
@@ -0,0 +1,10 @@
|
||||
package com.example.nto.service;
|
||||
|
||||
/**
|
||||
* TODO: ДОРАБОТАТЬ в рамках задания
|
||||
* =================================
|
||||
* МОЖНО: Добавлять методы, аннотации, зависимости
|
||||
* НЕЛЬЗЯ: Изменять название класса и пакета
|
||||
*/
|
||||
public interface BookingService {
|
||||
}
|
||||
10
src/main/java/com/example/nto/service/EmployeeService.java
Normal file
10
src/main/java/com/example/nto/service/EmployeeService.java
Normal file
@@ -0,0 +1,10 @@
|
||||
package com.example.nto.service;
|
||||
|
||||
/**
|
||||
* TODO: ДОРАБОТАТЬ в рамках задания
|
||||
* =================================
|
||||
* МОЖНО: Добавлять методы, аннотации, зависимости
|
||||
* НЕЛЬЗЯ: Изменять название класса и пакета
|
||||
*/
|
||||
public interface EmployeeService {
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.example.nto.service.impl;
|
||||
|
||||
import com.example.nto.service.BookingService;
|
||||
|
||||
/**
|
||||
* TODO: ДОРАБОТАТЬ в рамках задания
|
||||
* =================================
|
||||
* МОЖНО: Добавлять методы, аннотации, зависимости
|
||||
* НЕЛЬЗЯ: Изменять название класса и пакета
|
||||
*/
|
||||
public class BookingServiceImpl implements BookingService {
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.example.nto.service.impl;
|
||||
|
||||
import com.example.nto.service.EmployeeService;
|
||||
|
||||
/**
|
||||
* TODO: ДОРАБОТАТЬ в рамках задания
|
||||
* =================================
|
||||
* МОЖНО: Добавлять методы, аннотации, зависимости
|
||||
* НЕЛЬЗЯ: Изменять название класса и пакета
|
||||
*/
|
||||
public class EmployeeServiceImpl implements EmployeeService {
|
||||
}
|
||||
26
src/main/resources/application.yml
Normal file
26
src/main/resources/application.yml
Normal file
@@ -0,0 +1,26 @@
|
||||
# ===================================================
|
||||
# ВНИМАНИЕ: Этот файл НЕЛЬЗЯ никак модифицировать,
|
||||
# перемещать и удалять!
|
||||
# ===================================================
|
||||
spring:
|
||||
datasource:
|
||||
url: jdbc:h2:mem:testdb
|
||||
|
||||
h2:
|
||||
console:
|
||||
enabled: true
|
||||
|
||||
jpa:
|
||||
generate-ddl: false
|
||||
|
||||
hibernate:
|
||||
ddl-auto: none
|
||||
|
||||
show-sql: true
|
||||
|
||||
liquibase:
|
||||
enabled: true
|
||||
change-log: classpath:db.changelog/db.changelog-master.xml
|
||||
|
||||
booking:
|
||||
days-ahead: 3
|
||||
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- ============================================================ -->
|
||||
<!-- ВНИМАНИЕ: Этот файл НЕЛЬЗЯ никак модифицировать, -->
|
||||
<!-- не перемещать и не удалять! -->
|
||||
<!-- ============================================================ -->
|
||||
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.0.xsd
|
||||
http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">
|
||||
|
||||
<changeSet id="2025-11-05--0001-employee" author="anepretimov">
|
||||
<preConditions onFail="MARK_RAN">
|
||||
<not>
|
||||
<tableExists tableName="employee"/>
|
||||
</not>
|
||||
</preConditions>
|
||||
|
||||
<createTable tableName="employee">
|
||||
<column name="id" type="BIGINT" autoIncrement="true">
|
||||
<constraints primaryKey="true" nullable="false"/>
|
||||
</column>
|
||||
|
||||
<column name="name" type="VARCHAR(100)">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
|
||||
<column name="code" type="VARCHAR(100)">
|
||||
<constraints nullable="false" unique="true"/>
|
||||
</column>
|
||||
|
||||
<column name="photo_url" type="VARCHAR(100)"/>
|
||||
</createTable>
|
||||
</changeSet>
|
||||
|
||||
</databaseChangeLog>
|
||||
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- ============================================================ -->
|
||||
<!-- ВНИМАНИЕ: Этот файл НЕЛЬЗЯ никак модифицировать, -->
|
||||
<!-- не перемещать и не удалять! -->
|
||||
<!-- ============================================================ -->
|
||||
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.0.xsd
|
||||
http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">
|
||||
|
||||
<changeSet id="2025-11-05--0002-place" author="anepretimov">
|
||||
<preConditions onFail="MARK_RAN">
|
||||
<not>
|
||||
<tableExists tableName="place"/>
|
||||
</not>
|
||||
</preConditions>
|
||||
|
||||
<createTable tableName="place">
|
||||
<column name="id" type="BIGINT" autoIncrement="true">
|
||||
<constraints primaryKey="true" nullable="false"/>
|
||||
</column>
|
||||
|
||||
<column name="place_name" type="VARCHAR(100)">
|
||||
<constraints nullable="false" unique="true"/>
|
||||
</column>
|
||||
</createTable>
|
||||
</changeSet>
|
||||
|
||||
|
||||
</databaseChangeLog>
|
||||
@@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- ============================================================ -->
|
||||
<!-- ВНИМАНИЕ: Этот файл НЕЛЬЗЯ никак модифицировать, -->
|
||||
<!-- не перемещать и не удалять! -->
|
||||
<!-- ============================================================ -->
|
||||
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.0.xsd
|
||||
http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">
|
||||
|
||||
<changeSet id="2025-11-05--0003-booking" author="anepretimov">
|
||||
<preConditions onFail="MARK_RAN">
|
||||
<not>
|
||||
<tableExists tableName="booking"/>
|
||||
</not>
|
||||
</preConditions>
|
||||
|
||||
<createTable tableName="booking">
|
||||
<column name="id" type="BIGINT" autoIncrement="true">
|
||||
<constraints primaryKey="true" nullable="false"/>
|
||||
</column>
|
||||
|
||||
<column name="date" type="DATE">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
|
||||
<column name="employee_id" type="BIGINT">
|
||||
<constraints nullable="false" foreignKeyName="fk_booking_employee" referencedTableName="employee"
|
||||
referencedColumnNames="id"/>
|
||||
</column>
|
||||
|
||||
<column name="place_id" type="BIGINT">
|
||||
<constraints nullable="false" foreignKeyName="fk_booking_place" referencedTableName="place"
|
||||
referencedColumnNames="id"/>
|
||||
</column>
|
||||
</createTable>
|
||||
</changeSet>
|
||||
|
||||
</databaseChangeLog>
|
||||
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- ============================================================ -->
|
||||
<!-- ВНИМАНИЕ: Этот файл НЕЛЬЗЯ никак модифицировать, -->
|
||||
<!-- не перемещать и не удалять! -->
|
||||
<!-- ============================================================ -->
|
||||
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.0.xsd
|
||||
http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">
|
||||
|
||||
<changeSet id="2025-11-05--0001-employee-data" author="anepretimov">
|
||||
<loadData tableName="employee" file="db.changelog/data/csv/DO_NOT_MODIFY--2025-11-05--0001-employee-data.csv"
|
||||
separator=";"
|
||||
quotchar='"'
|
||||
encoding="UTF-8"/>
|
||||
</changeSet>
|
||||
</databaseChangeLog>
|
||||
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- ============================================================ -->
|
||||
<!-- ВНИМАНИЕ: Этот файл НЕЛЬЗЯ никак модифицировать, -->
|
||||
<!-- не перемещать и не удалять! -->
|
||||
<!-- ============================================================ -->
|
||||
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.0.xsd
|
||||
http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">
|
||||
|
||||
<changeSet id="2025-11-05--0002-place-data" author="anepretimov">
|
||||
<loadData tableName="place" file="db.changelog/data/csv/DO_NOT_MODIFY--2025-11-05--0002-place-data.csv"
|
||||
separator=";"
|
||||
quotchar='"'
|
||||
encoding="UTF-8"/>
|
||||
</changeSet>
|
||||
</databaseChangeLog>
|
||||
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- ============================================================ -->
|
||||
<!-- ВНИМАНИЕ: Этот файл НЕЛЬЗЯ никак модифицировать, -->
|
||||
<!-- не перемещать и не удалять! -->
|
||||
<!-- ============================================================ -->
|
||||
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.0.xsd
|
||||
http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">
|
||||
|
||||
<changeSet id="2025-11-05--0003-booking-data" author="anepretimov">
|
||||
<loadData tableName="booking" file="db.changelog/data/csv/DO_NOT_MODIFY--2025-11-05--0003-booking-data.csv"
|
||||
separator=";"
|
||||
quotchar='"'
|
||||
encoding="UTF-8"/>
|
||||
</changeSet>
|
||||
</databaseChangeLog>
|
||||
@@ -0,0 +1,5 @@
|
||||
name;code;photo_url
|
||||
Ivanov Ivan;1111;https://catalog-cdn.detmir.st/media/2fe02057f9915e72a378795d32c79ea9.jpeg
|
||||
Petrov Petr;2222;https://catalog-cdn.detmir.st/media/2fe02057f9915e72a378795d32c79ea9.jpeg
|
||||
Kozlov Oleg;3333;https://catalog-cdn.detmir.st/media/2fe02057f9915e72a378795d32c79ea9.jpeg
|
||||
Smirnova Anna;4444;https://catalog-cdn.detmir.st/media/2fe02057f9915e72a378795d32c79ea9.jpeg
|
||||
|
@@ -0,0 +1,4 @@
|
||||
place_name
|
||||
K-19
|
||||
M-16
|
||||
T-1
|
||||
|
@@ -0,0 +1,3 @@
|
||||
date;place_id;employee_id
|
||||
2025-11-08;1;1
|
||||
2025-11-10;2;2
|
||||
|
18
src/main/resources/db.changelog/db.changelog-master.xml
Normal file
18
src/main/resources/db.changelog/db.changelog-master.xml
Normal file
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- ============================================================ -->
|
||||
<!-- ВНИМАНИЕ: Этот файл НЕЛЬЗЯ никак модифицировать, -->
|
||||
<!-- не перемещать и не удалять! -->
|
||||
<!-- ============================================================ -->
|
||||
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
|
||||
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.8.xsd">
|
||||
|
||||
<include file="db.changelog/1/0/2025-11-05--0001-employee.xml"/>
|
||||
<include file="db.changelog/1/0/2025-11-05--0002-place.xml"/>
|
||||
<include file="db.changelog/1/0/2025-11-05--0003-booking.xml"/>
|
||||
|
||||
<include file="db.changelog/data/2025-11-05--0001-employee-data.xml"/>
|
||||
<include file="db.changelog/data/2025-11-05--0002-place-data.xml"/>
|
||||
<include file="db.changelog/data/2025-11-05--0003-booking-data.xml"/>
|
||||
</databaseChangeLog>
|
||||
Reference in New Issue
Block a user