feature/issues_v1 #25
@ -34,7 +34,7 @@ public class Issue {
|
||||
@EqualsAndHashCode.Include
|
||||
private Long id;
|
||||
|
||||
@Column(name = "iid")
|
||||
@Column(name = "two_id")
|
||||
|
||||
private Long twoId;
|
||||
|
||||
@Column(name = "project_id")
|
||||
@ -64,7 +64,7 @@ public class Issue {
|
||||
private Person closedBy;
|
||||
|
||||
@ElementCollection
|
||||
@CollectionTable(name = "issue_label", joinColumns = @JoinColumn(name = "label_id"))
|
||||
@CollectionTable(name = "issue_labels", joinColumns = @JoinColumn(name = "label_id"))
|
||||
@Column(name = "labels")
|
||||
private Set<String> labels = new HashSet<>();
|
||||
|
||||
@ -93,29 +93,29 @@ public class Issue {
|
||||
private IssueType type; // ОБразец приходящего значения "INCIDENT"
|
||||
|
||||
@ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
|
||||
@JoinColumn(name = "assignee")
|
||||
@JoinColumn(name = "assignee_id")
|
||||
private Person assignee;
|
||||
|
||||
@Column(name = "user_notes_count") //Количество комментов пользователя
|
||||
@Column(name = "user_notes_count")
|
||||
private Integer userNotesCount;
|
||||
|
||||
@Column(name = "merge_requests_count")
|
||||
private Integer mergeRequestsCount;
|
||||
|
||||
@Column(name = "upvotes") // Количество лайков
|
||||
@Column(name = "up_votes")
|
||||
private Integer upVotes;
|
||||
|
||||
@Column(name = "downvotes") // Количество дизлайков
|
||||
@Column(name = "down_votes")
|
||||
private Integer downVotes;
|
||||
|
||||
@Column(name = "due_date")
|
||||
private LocalDateTime dueDate;
|
||||
|
||||
@Column(name = "confidential") // Конфиденцальное или нет
|
||||
@Column(name = "confidential")
|
||||
private Boolean confidential;
|
||||
|
||||
@Column(name = "discussion_locked")
|
||||
private Integer discussionLocked; //TODO выяснить тип поляя.
|
||||
private Integer discussionLocked;
|
||||
|
||||
@Column(name = "issue_type")
|
||||
private String issueType; //TODO выяснить зачем дублирует поле type Образец приходящего значения "incident"
|
||||
@ -123,7 +123,6 @@ public class Issue {
|
||||
@Column(name = "web_url")
|
||||
private String webUrl;
|
||||
|
||||
|
||||
@Embedded
|
||||
@AttributeOverrides({
|
||||
@AttributeOverride(name = "timeEstimate", column = @Column(name = "time_estimate")),
|
||||
@ -135,8 +134,8 @@ public class Issue {
|
||||
|
||||
@Embedded
|
||||
@AttributeOverrides({
|
||||
@AttributeOverride(name = "count", column = @Column(name = "count")),
|
||||
@AttributeOverride(name = "completedCount", column = @Column(name = "completed_count"))
|
||||
@AttributeOverride(name = "count", column = @Column(name = "task_count")),
|
||||
@AttributeOverride(name = "completedCount", column = @Column(name = "task_completed_count"))
|
||||
})
|
||||
private TaskCompletionStatus taskCompletionStatus;
|
||||
|
||||
@ -148,11 +147,11 @@ public class Issue {
|
||||
|
||||
@Embedded
|
||||
@AttributeOverrides({
|
||||
@AttributeOverride(name = "self", column = @Column(name = "self")),
|
||||
@AttributeOverride(name = "notes", column = @Column(name = "notes")),
|
||||
@AttributeOverride(name = "awardEmoji", column = @Column(name = "award_emoji")),
|
||||
@AttributeOverride(name = "project", column = @Column(name = "project")),
|
||||
@AttributeOverride(name = "closedAsDuplicateOf", column = @Column(name = "closed_as_duplicate_of"))
|
||||
@AttributeOverride(name = "self", column = @Column(name = "link_to_self")),
|
||||
@AttributeOverride(name = "notes", column = @Column(name = "link_to_notes")),
|
||||
@AttributeOverride(name = "awardEmoji", column = @Column(name = "link_to_award_emoji")),
|
||||
@AttributeOverride(name = "project", column = @Column(name = "link_to_project")),
|
||||
@AttributeOverride(name = "closedAsDuplicateOf", column = @Column(name = "link_to_closed_as_duplicate_of"))
|
||||
})
|
||||
private Links links;
|
||||
|
||||
@ -164,8 +163,9 @@ public class Issue {
|
||||
})
|
||||
private References references;
|
||||
|
||||
/*Возможно надо заменить на енум "UNKNOWN", Critical - S1, High - S2, Medium - S3, Low - S4.
|
||||
Но это поле доступно только для премиум акаунтов
|
||||
/**
|
||||
Возможно надо заменить на енум: "UNKNOWN", "Critical - S1", "High - S2", "Medium - S3", "Low - S4".
|
||||
Но выбор любых значений кроме "UNKNOWN" доступен только для премиум акаунтов и я не могу получить точные значения котоые оно принимает.
|
||||
*/
|
||||
@Column(name = "severity")
|
||||
private String severity;
|
||||
@ -174,7 +174,7 @@ public class Issue {
|
||||
private Long movedToId;
|
||||
|
||||
@Column(name = "service_desk_reply_to")
|
||||
private String serviceDescReplyTo; //TODO не понятен тип поля
|
||||
private String serviceDescReplyTo;
|
||||
|
||||
@Column(name = "epic_issue_id")
|
||||
private Long epicId; // "epic_issue_id" Поле доснтупное только для премиум акаунтов
|
||||
|
@ -28,7 +28,7 @@ public class Milestone {
|
||||
@EqualsAndHashCode.Include
|
||||
private Long id;
|
||||
|
||||
@Column(name = "iid")
|
||||
@Column(name = "two_id")
|
||||
private Long twoId;
|
||||
|
||||
@Column(name = "project_id")
|
||||
|
@ -0,0 +1,206 @@
|
||||
<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-4.17.xsd">
|
||||
|
||||
<changeSet id="2023-01-19-create-table-milestone" author="Dmitry Sheyko">
|
||||
upagge
commented
Нужно актуализировать схему согласно упращенной доменной модели Нужно актуализировать схему согласно упращенной доменной модели
DmitrySheyko
commented
ChangeSet доработал ChangeSet доработал
|
||||
<createTable tableName="milestone">
|
||||
<column name="id" type="int">
|
||||
<constraints nullable="false" primaryKey="true"/>
|
||||
</column>
|
||||
<column name="two_id" type="int">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="project_id" type="int">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="title" type="varchar(255)">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="description" type="varchar(2000)">
|
||||
<constraints nullable="true"/>
|
||||
</column>
|
||||
<column name="state" type="varchar(10)">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="created_date" type="datetime">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="updated_date" type="datetime">
|
||||
<constraints nullable="true"/>
|
||||
</column>
|
||||
<column name="start_date" type="datetime">
|
||||
<constraints nullable="true"/>
|
||||
</column>
|
||||
<column name="due_date" type="datetime">
|
||||
<constraints nullable="true"/>
|
||||
</column>
|
||||
<column name="expired" type="boolean">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="web_url" type="varchar(300)">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
</createTable>
|
||||
</changeSet>
|
||||
|
||||
<changeSet id="create-table-issue" author="Dmitry Sheyko">
|
||||
upagge
commented
пропущена дата в id пропущена дата в id
DmitrySheyko
commented
Даты внес Даты внес
|
||||
<createTable tableName="issue">
|
||||
<column name="id" type="int">
|
||||
<constraints nullable="false" primaryKey="true"/>
|
||||
</column>
|
||||
<column name="two_id" type="int">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="project_id" type="int">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="title" type="varchar(255)">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="description" type="varchar(2000)">
|
||||
<constraints nullable="true"/>
|
||||
</column>
|
||||
<column name="state" type="varchar(10)">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="created_date" type="datetime">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="updated_date" type="datetime">
|
||||
<constraints nullable="true"/>
|
||||
</column>
|
||||
<column name="closed_at" type="datetime">
|
||||
<constraints nullable="true"/>
|
||||
</column>
|
||||
<column name="closed_by_id" type="int">
|
||||
<constraints nullable="true" foreignKeyName="fk_issue_closed_by_id_person_id" references="person(id)"/>
|
||||
</column>
|
||||
<column name="milestone_id" type="int">
|
||||
<constraints nullable="false" foreignKeyName="fk_issie_milestone_id_milestone_id" references="milestone(id)"/>
|
||||
</column>
|
||||
<column name="author_id" type="int">
|
||||
<constraints nullable="false" foreignKeyName="fk_issue_author_id_person_id" references="person(id)"/>
|
||||
</column>
|
||||
<column name="type" type="varchar(10)">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="assignee_id" type="int">
|
||||
<constraints nullable="true" foreignKeyName="fk_issue_assignee_id_person_id" references="person(id)"/>
|
||||
</column>
|
||||
<column name="user_notes_count" type="int">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="merge_requests_count" type="int">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="up_votes" type="int">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="down_votes" type="int">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="due_date" type="datetime">
|
||||
<constraints nullable="true"/>
|
||||
</column>
|
||||
<column name="confidential" type="boolean">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="discussion_locked" type="int">
|
||||
<constraints nullable="true"/>
|
||||
</column>
|
||||
<column name="issue_type" type="varchar(10)">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="web_url" type="varchar(300)">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="time_estimate" type="int">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="total_time_spent" type="int">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="human_time_estimate" type="varchar(20)">
|
||||
<constraints nullable="true"/>
|
||||
</column>
|
||||
<column name="human_total_time_spent" type="varchar(20)">
|
||||
<constraints nullable="true"/>
|
||||
</column>
|
||||
<column name="task_count" type="int">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="task_completed_count" type="int">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="blocking_issues_count" type="int">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="has_tasks" type="boolean">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="link_to_self" type="varchar(300)">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="link_to_notes" type="varchar(300)">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="link_to_award_emoji" type="varchar(300)">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="link_to_project" type="varchar(300)">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="link_to_closed_as_duplicate_of" type="varchar(300)">
|
||||
<constraints nullable="true"/>
|
||||
</column>
|
||||
<column name="short_reference" type="varchar(100)">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="relative_reference" type="varchar(100)">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="full_reference" type="varchar(100)">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="severity" type="varchar(50)">
|
||||
<constraints nullable="true"/>
|
||||
</column>
|
||||
<column name="moved_to_id" type="int">
|
||||
<constraints nullable="true"/>
|
||||
</column>
|
||||
<column name="service_desk_reply_to" type="varchar(1000)">
|
||||
<constraints nullable="true"/>
|
||||
</column>
|
||||
<column name="epic_issue_id" type="int">
|
||||
<constraints nullable="true"/>
|
||||
</column>
|
||||
</createTable>
|
||||
</changeSet>
|
||||
|
||||
<changeSet id="create-table-issue_labels" author="Dmitry Sheyko">
|
||||
<createTable tableName="issue_labels">
|
||||
upagge
commented
В целях следования единому стилю, нужно переименовать на issue_label В целях следования единому стилю, нужно переименовать на issue_label
DmitrySheyko
commented
Переименовал Переименовал
|
||||
<column name="issue_id" type="int">
|
||||
<constraints nullable="false" foreignKeyName="fk_issue_labels_issue_id"
|
||||
references="issue(id)" deleteCascade="true"/>
|
||||
</column>
|
||||
<column name="labels" type="varchar(255)">
|
||||
upagge
commented
labels -> label labels -> label
DmitrySheyko
commented
Сделано Сделано
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
</createTable>
|
||||
</changeSet>
|
||||
|
||||
<changeSet id="create-table-issue_assignees" author="Dmitry Sheyko">
|
||||
<createTable tableName="issue_assignees">
|
||||
<column name="issue_id" type="int">
|
||||
<constraints nullable="false" foreignKeyName="fk_issue_assignees_issue_id" references="issue(id)"/>
|
||||
</column>
|
||||
<column name="person_id" type="int">
|
||||
<constraints nullable="false" foreignKeyName="fk_issue_assignees_person_id" references="person(id)"/>
|
||||
</column>
|
||||
</createTable>
|
||||
|
||||
<addPrimaryKey tableName="issue_assignees" columnNames="issue_id, person_id"/>
|
||||
</changeSet>
|
||||
|
||||
</databaseChangeLog>
|
@ -9,5 +9,6 @@
|
||||
|
||||
<include file="2022-12-03-create-tables.xml" relativeToChangelogFile="true"/>
|
||||
<include file="2022-12-03-insert.xml" relativeToChangelogFile="true"/>
|
||||
<include file="2023-01-19-create-tables-for-issue.xml" relativeToChangelogFile="true"/>
|
||||
|
||||
</databaseChangeLog>
|
@ -71,7 +71,7 @@ public class IssueJson {
|
||||
private Boolean confidential;
|
||||
|
||||
@JsonProperty("discussion_locked")
|
||||
private Integer discussionLocked; //TODO выяснить тип поля
|
||||
private Integer discussionLocked;
|
||||
|
||||
@JsonProperty("issue_type")
|
||||
private String issueType; //TODO выяснить зачем дублирует поле type
|
||||
upagge
commented
TODO можно удалить, скоре всего это просто оставлено для обратной совместимости со старым апи TODO можно удалить, скоре всего это просто оставлено для обратной совместимости со старым апи
DmitrySheyko
commented
Удалено Удалено
|
||||
@ -95,13 +95,13 @@ public class IssueJson {
|
||||
private LinksJson links;
|
||||
|
||||
private ReferencesJson references;
|
||||
private String severity; //TODO заменить на енум "UNKNOWN", Critical - S1, High - S2, Medium - S3, Low - S4,
|
||||
private String severity;
|
||||
|
||||
@JsonProperty("moved_to_id")
|
||||
private Long movedToId;
|
||||
|
||||
@JsonProperty("service_desk_reply_to")
|
||||
private Long serviceDescReplyTo; //TODO не понятен тип поля
|
||||
private Long serviceDescReplyTo;
|
||||
|
||||
@JsonProperty("epic_issue_id")
|
||||
private Long epicId; // "epic_issue_id" Поле доступное только для премиум акаунтов
|
||||
|
@ -1,5 +1,6 @@
|
||||
package dev.struchkov.bot.gitlab.sdk.domain;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
@ -8,8 +9,16 @@ import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class TimeStatsJson {
|
||||
|
||||
@JsonProperty("time_estimate")
|
||||
private Integer timeEstimate;
|
||||
|
||||
@JsonProperty("total_time_spent")
|
||||
private Integer totalTimeSpent; // количество секунд затраченых на работы, пример 37800"
|
||||
|
||||
@JsonProperty("human_time_estimate")
|
||||
private String humanTimeEstimate;
|
||||
|
||||
@JsonProperty("human_total_time_spent")
|
||||
private String humanTotalTimeSpent; // Время строкой, пример "10h 30m"
|
||||
}
|
Loading…
Reference in New Issue
Block a user
Лишний перенос строки, и комментарий непонятно что означает, почему это стоит учитывать и почему этот комментарий тут? Пагинация передается и настраивается. Комментарий стоит удалить.
Правки внес.
Комментарий думал оставить временно, чтобы не забыть осоенность которую нашел в документации. Привычка везде оставлять напоминания.