|
| 1 | +using JsonSubTypes; |
| 2 | +using Newtonsoft.Json; |
| 3 | +using Newtonsoft.Json.Converters; |
| 4 | + |
| 5 | +namespace Notion.Client |
| 6 | +{ |
| 7 | + [JsonConverter(typeof(JsonSubtypes), "type")] |
| 8 | + [JsonSubtypes.KnownSubType(typeof(AudioBlock), BlockType.Audio)] |
| 9 | + [JsonSubtypes.KnownSubType(typeof(BookmarkBlock), BlockType.Bookmark)] |
| 10 | + [JsonSubtypes.KnownSubType(typeof(BreadcrumbBlock), BlockType.Breadcrumb)] |
| 11 | + [JsonSubtypes.KnownSubType(typeof(BulletedListItemBlock), BlockType.BulletedListItem)] |
| 12 | + [JsonSubtypes.KnownSubType(typeof(CalloutBlock), BlockType.Callout)] |
| 13 | + [JsonSubtypes.KnownSubType(typeof(ChildPageBlock), BlockType.ChildPage)] |
| 14 | + [JsonSubtypes.KnownSubType(typeof(ChildDatabaseBlock), BlockType.ChildDatabase)] |
| 15 | + [JsonSubtypes.KnownSubType(typeof(CodeBlock), BlockType.Code)] |
| 16 | + [JsonSubtypes.KnownSubType(typeof(ColumnBlock), BlockType.Column)] |
| 17 | + [JsonSubtypes.KnownSubType(typeof(ColumnListBlock), BlockType.ColumnList)] |
| 18 | + [JsonSubtypes.KnownSubType(typeof(DividerBlock), BlockType.Divider)] |
| 19 | + [JsonSubtypes.KnownSubType(typeof(EmbedBlock), BlockType.Embed)] |
| 20 | + [JsonSubtypes.KnownSubType(typeof(EquationBlock), BlockType.Equation)] |
| 21 | + [JsonSubtypes.KnownSubType(typeof(FileBlock), BlockType.File)] |
| 22 | + [JsonSubtypes.KnownSubType(typeof(HeadingOneBlock), BlockType.Heading_1)] |
| 23 | + [JsonSubtypes.KnownSubType(typeof(HeadingTwoBlock), BlockType.Heading_2)] |
| 24 | + [JsonSubtypes.KnownSubType(typeof(HeadingThreeeBlock), BlockType.Heading_3)] |
| 25 | + [JsonSubtypes.KnownSubType(typeof(ImageBlock), BlockType.Image)] |
| 26 | + [JsonSubtypes.KnownSubType(typeof(NumberedListItemBlock), BlockType.NumberedListItem)] |
| 27 | + [JsonSubtypes.KnownSubType(typeof(ParagraphBlock), BlockType.Paragraph)] |
| 28 | + [JsonSubtypes.KnownSubType(typeof(PDFBlock), BlockType.PDF)] |
| 29 | + [JsonSubtypes.KnownSubType(typeof(QuoteBlock), BlockType.Quote)] |
| 30 | + [JsonSubtypes.KnownSubType(typeof(TableOfContentsBlock), BlockType.TableOfContents)] |
| 31 | + [JsonSubtypes.KnownSubType(typeof(ToDoBlock), BlockType.ToDo)] |
| 32 | + [JsonSubtypes.KnownSubType(typeof(ToggleBlock), BlockType.Toggle)] |
| 33 | + [JsonSubtypes.KnownSubType(typeof(VideoBlock), BlockType.Video)] |
| 34 | + [JsonSubtypes.KnownSubType(typeof(UnsupportedBlock), BlockType.Unsupported)] |
| 35 | + public interface IBlock : IObject |
| 36 | + { |
| 37 | + [JsonProperty("type")] |
| 38 | + [JsonConverter(typeof(StringEnumConverter))] |
| 39 | + BlockType Type { get; set; } |
| 40 | + |
| 41 | + [JsonProperty("created_time")] |
| 42 | + string CreatedTime { get; set; } |
| 43 | + |
| 44 | + [JsonProperty("last_edited_time")] |
| 45 | + string LastEditedTime { get; set; } |
| 46 | + |
| 47 | + [JsonProperty("has_children")] |
| 48 | + bool HasChildren { get; set; } |
| 49 | + } |
| 50 | +} |
0 commit comments